From 9640c330e54d55e304c96e2a0041e144b14915e3 Mon Sep 17 00:00:00 2001 From: Andy Balaam Date: Wed, 14 Jan 2026 09:57:00 +0000 Subject: [PATCH] Remove the count indicator from toasts (#31718) --- .../key-storage-out-of-sync-toast-linux.png | Bin 18676 -> 18189 bytes res/css/structures/_ToastContainer.pcss | 7 ---- src/components/structures/ToastContainer.tsx | 9 ----- src/stores/ToastStore.ts | 16 --------- test/unit-tests/stores/ToastStore-test.ts | 34 +----------------- .../UnverifiedSessionToast-test.tsx.snap | 3 -- 6 files changed, 1 insertion(+), 68 deletions(-) diff --git a/playwright/snapshots/crypto/toasts.spec.ts/key-storage-out-of-sync-toast-linux.png b/playwright/snapshots/crypto/toasts.spec.ts/key-storage-out-of-sync-toast-linux.png index c5ca8fdc023a87f04acbcc6d550017371381580f..f5514af8cf1cf09adb2f64e2ca495f9192709691 100644 GIT binary patch literal 18189 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%0A|xhku?fc~c(t?- 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 yr?q}_(agdB4*&rF|5W@GeE[]; - countSeen: number; } export default class ToastContainer extends React.Component { @@ -23,7 +22,6 @@ export default class ToastContainer extends React.Component super(props); this.state = { toasts: ToastStore.sharedInstance().getToasts(), - countSeen: ToastStore.sharedInstance().getCountSeen(), }; } @@ -39,7 +37,6 @@ export default class ToastContainer extends React.Component private onToastStoreUpdate = (): void => { this.setState({ toasts: ToastStore.sharedInstance().getToasts(), - countSeen: ToastStore.sharedInstance().getCountSeen(), }); }; @@ -61,11 +58,6 @@ export default class ToastContainer extends React.Component }); const content = React.createElement(component, toastProps); - let countIndicator; - if ((title && isStacked) || this.state.countSeen > 0) { - countIndicator = ` (${this.state.countSeen + 1}/${this.state.countSeen + totalCount})`; - } - let titleElement; if (title) { titleElement = ( @@ -73,7 +65,6 @@ export default class ToastContainer extends React.Component {title} - {countIndicator} ); } diff --git a/src/stores/ToastStore.ts b/src/stores/ToastStore.ts index 41a78ed460..6541ad7a0c 100644 --- a/src/stores/ToastStore.ts +++ b/src/stores/ToastStore.ts @@ -30,9 +30,6 @@ export interface IToast { */ export default class ToastStore extends EventEmitter { private toasts: IToast[] = []; - // The count of toasts which have been seen & dealt with in this stack - // where the count resets when the stack of toasts clears. - private countSeen = 0; public static sharedInstance(): ToastStore { if (!window.mxToastStore) window.mxToastStore = new ToastStore(); @@ -41,7 +38,6 @@ export default class ToastStore extends EventEmitter { public reset(): void { this.toasts = []; - this.countSeen = 0; } /** @@ -68,18 +64,10 @@ export default class ToastStore extends EventEmitter { } public dismissToast(key: string): void { - if (this.toasts[0] && this.toasts[0].key === key) { - this.countSeen++; - } - const length = this.toasts.length; this.toasts = this.toasts.filter((t) => t.key !== key); if (length !== this.toasts.length) { logger.info(`Removed toast with key '${key}'`); - if (this.toasts.length === 0) { - this.countSeen = 0; - } - this.emit("update"); } } @@ -87,8 +75,4 @@ export default class ToastStore extends EventEmitter { public getToasts(): IToast[] { return this.toasts; } - - public getCountSeen(): number { - return this.countSeen; - } } diff --git a/test/unit-tests/stores/ToastStore-test.ts b/test/unit-tests/stores/ToastStore-test.ts index 612721a1c5..a5a16eb856 100644 --- a/test/unit-tests/stores/ToastStore-test.ts +++ b/test/unit-tests/stores/ToastStore-test.ts @@ -71,7 +71,6 @@ describe("ToastStore", () => { store.dismissToast("whatever"); - expect(store.getCountSeen()).toEqual(0); expect(emitSpy).not.toHaveBeenCalled(); }); @@ -85,43 +84,13 @@ describe("ToastStore", () => { store.dismissToast(toastA.key); - expect(store.getCountSeen()).toEqual(0); expect(emitSpy).toHaveBeenCalledWith("update"); expect(store.getToasts()).toEqual([toastB]); }); - - it("increments countSeen when toast has bottom priority", () => { - const store = new ToastStore(); - const toastA = makeToast(1, "a"); - const toastB = makeToast(3, "b"); - const toastC = makeToast(99, "c"); - store.addOrReplaceToast(toastA); - store.addOrReplaceToast(toastC); - store.addOrReplaceToast(toastB); - const emitSpy = jest.spyOn(store, "emit"); - - store.dismissToast(toastC.key); - - expect(store.getCountSeen()).toEqual(1); - expect(emitSpy).toHaveBeenCalledWith("update"); - }); - - it("resets countSeen when no toasts remain", () => { - const store = new ToastStore(); - const toastA = makeToast(1, "a"); - const toastB = makeToast(3, "b"); - store.addOrReplaceToast(toastA); - store.addOrReplaceToast(toastB); - - store.dismissToast(toastB.key); - expect(store.getCountSeen()).toEqual(1); - store.dismissToast(toastA.key); - expect(store.getCountSeen()).toEqual(0); - }); }); describe("reset()", () => { - it("clears countseen and toasts", () => { + it("clears toasts", () => { const store = new ToastStore(); const toastA = makeToast(1, "a"); const toastB = makeToast(3, "b"); @@ -131,7 +100,6 @@ describe("ToastStore", () => { store.dismissToast(toastB.key); store.reset(); - expect(store.getCountSeen()).toEqual(0); expect(store.getToasts()).toEqual([]); }); }); diff --git a/test/unit-tests/toasts/__snapshots__/UnverifiedSessionToast-test.tsx.snap b/test/unit-tests/toasts/__snapshots__/UnverifiedSessionToast-test.tsx.snap index 067578b65d..4e02f704ad 100644 --- a/test/unit-tests/toasts/__snapshots__/UnverifiedSessionToast-test.tsx.snap +++ b/test/unit-tests/toasts/__snapshots__/UnverifiedSessionToast-test.tsx.snap @@ -30,9 +30,6 @@ exports[`UnverifiedSessionToast when rendering the toast should render as expect > New login. Was this you? -