fix(inbox): access-requests nudge points to Users + a jump link, no pile-up
The pending-access-requests notification still said "review in Settings -> Account",
but that moved to the new Users page in 5a. Update the text (EN/HU/DE), and give the
notification a durable inbox link ("Review" -> Users page) via a new access-requests
meta kind (persists across reload, unlike a live action callback). Also stop it
piling up: persisted notices reload as dismissed history, so the old dedupe never
matched and a fresh copy was added every load — now removeByMetaKind drops any prior
access-requests notice before re-issuing, keeping exactly one current nudge.
This commit is contained in:
parent
105505f67e
commit
ec78c48a17
6 changed files with 54 additions and 12 deletions
|
|
@ -31,7 +31,16 @@ export type ChannelSubscribedMeta = {
|
|||
channelId: string;
|
||||
channelName: string;
|
||||
};
|
||||
export type NotifMeta = VideoHiddenMeta | VideoWatchedMeta | ChannelSubscribedMeta;
|
||||
// Admin nudge that pending access requests are waiting — carries a durable inbox link to the
|
||||
// Users page (where Access requests live). No payload; the panel provides the navigation.
|
||||
export type AccessRequestsMeta = {
|
||||
kind: "access-requests";
|
||||
};
|
||||
export type NotifMeta =
|
||||
| VideoHiddenMeta
|
||||
| VideoWatchedMeta
|
||||
| ChannelSubscribedMeta
|
||||
| AccessRequestsMeta;
|
||||
|
||||
export interface Notification {
|
||||
id: number;
|
||||
|
|
@ -173,6 +182,15 @@ export function subscribe(listener: () => void): () => void {
|
|||
};
|
||||
}
|
||||
|
||||
/** Drop every notification (active or dismissed history) carrying this meta kind. Used to keep
|
||||
* a singleton nudge — e.g. re-issuing the "access requests pending" notice without piling up a
|
||||
* fresh copy (plus a stale history entry) on every reload. */
|
||||
export function removeByMetaKind(kind: NotifMeta["kind"]): void {
|
||||
const before = items.length;
|
||||
items = items.filter((n) => n.meta?.kind !== kind);
|
||||
if (items.length !== before) emit();
|
||||
}
|
||||
|
||||
export function notify(input: NotifyInput): number {
|
||||
const id = counter++;
|
||||
const requiresInteraction = input.requiresInteraction ?? false;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue