mirror of
https://github.com/duckietm/Nitro-V3.git
synced 2026-06-19 15:06:20 +00:00
dcbf44aedb
Chat tagging: - Any @user is a visible tag in chat bubbles (the .mention-tag CSS never existed, so highlighting was invisible); self/alias mentions get a gold emphasis. Fixes cross-room tags not being highlighted. Mentions window: - Redesigned: unread count in the header, restyled filter chips + a refresh button, CSS-driven list/date-groups, adaptive height (compact when few, capped + scroll when many), polished empty state. - Rows: framed avatar (friends-list head crop so the face is never clipped), per-row unread dot, type marker, icon action buttons (goto / remove). - Re-requests from the server each time it opens. Autocomplete: - Never suggests the viewer themselves; suggests room users + online friends + aliases. Notifications: - Mention toast removed; mentions flow through the client's standard notification stream via a dedicated mention bubble (avatar + actions) in the default position. EVERY received mention surfaces (independent of the generic info-feed toggle, gated only by mentions_ui.enabled). Refactor (behaviour-preserving): - Centralised @-token classification in api/mentions/mentionTokens. - Moved mentionsFormat -> api/mentions, useMentionActions -> hooks/mentions. - Extracted ChatInputView @-autocomplete into a tested useChatMentions hook + pure helper; removed the dead duplicate useMentionAutocomplete.
26 lines
807 B
TypeScript
26 lines
807 B
TypeScript
import { IMentionEntry } from '../mentions';
|
|
import { NotificationBubbleItem } from './NotificationBubbleItem';
|
|
import { NotificationBubbleType } from './NotificationBubbleType';
|
|
|
|
/**
|
|
* A notification bubble that carries a full mention entry, so the dedicated
|
|
* mention bubble layout can render the sender's avatar (from the figure) and
|
|
* the go-to-room action — data the plain NotificationBubbleItem can't hold.
|
|
*/
|
|
export class MentionNotificationBubbleItem extends NotificationBubbleItem
|
|
{
|
|
private _mention: IMentionEntry;
|
|
|
|
constructor(mention: IMentionEntry)
|
|
{
|
|
super(mention.message, NotificationBubbleType.MENTION, null, null, mention.senderUsername);
|
|
|
|
this._mention = mention;
|
|
}
|
|
|
|
public get mention(): IMentionEntry
|
|
{
|
|
return this._mention;
|
|
}
|
|
}
|