From d0c60e6ee44e9822b46dc3a669ed6617a73a5cbd Mon Sep 17 00:00:00 2001 From: Skye Elliot Date: Tue, 27 Jan 2026 11:28:33 +0000 Subject: [PATCH] Remove "history may be shared" banner. (#31881) * Revert "Update algorithm for history visible banner. (#31577)" This reverts commit ce9c66ba4c25f3de5ceca5d244591d8aa1183ce8. * Revert "Update prop type & documentation for HistoryVisibleBanner and VM. (#31545)" This reverts commit 4da149e56f5a593daf05ed9a84eea7da11d800e9. * Revert "Prevent history visible banner from displaying in threads. (#31535)" This reverts commit c7134e85324878f06da3936ccad09655876cad0d. * Revert "Implement UI for history visibility acknowledgement. (#31156)" This reverts commit cff9119324dced2ab570201d159ea0c8169344c2. --- .../HistoryVisibleBannerView.stories.tsx | 42 ---- .../HistoryVisibleBannerView.test.tsx | 29 --- .../HistoryVisibleBannerView.tsx | 78 ------- .../HistoryVisibleBannerView.test.tsx.snap | 62 ------ .../HistoryVisibleBannerView/index.ts | 8 - .../src/i18n/strings/en_EN.json | 1 - packages/shared-components/src/index.ts | 1 - .../shared-history-invite-accepted-linux.png | Bin 54074 -> 50637 bytes .../views/composer/HistoryVisibleBanner.tsx | 30 --- .../views/rooms/MessageComposer.tsx | 6 - src/settings/Settings.tsx | 5 - .../HistoryVisibleBannerViewModel.tsx | 184 ---------------- test/test-utils/test-utils.ts | 9 +- .../HistoryVisibleBannerViewModel-test.tsx | 199 ------------------ 14 files changed, 3 insertions(+), 651 deletions(-) delete mode 100644 packages/shared-components/src/composer/HistoryVisibleBannerView/HistoryVisibleBannerView.stories.tsx delete mode 100644 packages/shared-components/src/composer/HistoryVisibleBannerView/HistoryVisibleBannerView.test.tsx delete mode 100644 packages/shared-components/src/composer/HistoryVisibleBannerView/HistoryVisibleBannerView.tsx delete mode 100644 packages/shared-components/src/composer/HistoryVisibleBannerView/__snapshots__/HistoryVisibleBannerView.test.tsx.snap delete mode 100644 packages/shared-components/src/composer/HistoryVisibleBannerView/index.ts delete mode 100644 src/components/views/composer/HistoryVisibleBanner.tsx delete mode 100644 src/viewmodels/composer/HistoryVisibleBannerViewModel.tsx delete mode 100644 test/unit-tests/components/viewmodels/composer/HistoryVisibleBannerViewModel-test.tsx diff --git a/packages/shared-components/src/composer/HistoryVisibleBannerView/HistoryVisibleBannerView.stories.tsx b/packages/shared-components/src/composer/HistoryVisibleBannerView/HistoryVisibleBannerView.stories.tsx deleted file mode 100644 index 45c2a0b703..0000000000 --- a/packages/shared-components/src/composer/HistoryVisibleBannerView/HistoryVisibleBannerView.stories.tsx +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright (c) 2025 Element Creations Ltd. - * - * SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial - * Please see LICENSE files in the repository root for full details. - */ -import { type Meta, type StoryFn } from "@storybook/react-vite"; -import React, { type JSX } from "react"; -import { fn } from "storybook/test"; - -import { useMockedViewModel } from "../../viewmodel"; -import { - HistoryVisibleBannerView, - type HistoryVisibleBannerViewActions, - type HistoryVisibleBannerViewSnapshot, -} from "./HistoryVisibleBannerView"; - -type HistoryVisibleBannerProps = HistoryVisibleBannerViewSnapshot & HistoryVisibleBannerViewActions; - -const HistoryVisibleBannerViewWrapper = ({ onClose, ...rest }: HistoryVisibleBannerProps): JSX.Element => { - const vm = useMockedViewModel(rest, { - onClose, - }); - return ; -}; - -export default { - title: "composer/HistoryVisibleBannerView", - component: HistoryVisibleBannerViewWrapper, - tags: ["autodocs"], - argTypes: {}, - args: { - visible: true, - onClose: fn(), - }, -} as Meta; - -const Template: StoryFn = (args) => ( - -); - -export const Default = Template.bind({}); diff --git a/packages/shared-components/src/composer/HistoryVisibleBannerView/HistoryVisibleBannerView.test.tsx b/packages/shared-components/src/composer/HistoryVisibleBannerView/HistoryVisibleBannerView.test.tsx deleted file mode 100644 index f5dbb63d6d..0000000000 --- a/packages/shared-components/src/composer/HistoryVisibleBannerView/HistoryVisibleBannerView.test.tsx +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright (c) 2025 Element Creations Ltd. - * - * SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial - * Please see LICENSE files in the repository root for full details. - */ - -import React from "react"; -import { render } from "@test-utils"; -import { composeStories } from "@storybook/react-vite"; -import { describe, it, vi, expect } from "vitest"; - -import * as stories from "./HistoryVisibleBannerView.stories.tsx"; - -const { Default } = composeStories(stories); - -describe("HistoryVisibleBannerView", () => { - it("renders a history visible banner", () => { - const dismissFn = vi.fn(); - - const { container } = render(); - expect(container).toMatchSnapshot(); - - const button = container.querySelector("button"); - expect(button).not.toBeNull(); - button?.click(); - expect(dismissFn).toHaveBeenCalled(); - }); -}); diff --git a/packages/shared-components/src/composer/HistoryVisibleBannerView/HistoryVisibleBannerView.tsx b/packages/shared-components/src/composer/HistoryVisibleBannerView/HistoryVisibleBannerView.tsx deleted file mode 100644 index 4353db4bd5..0000000000 --- a/packages/shared-components/src/composer/HistoryVisibleBannerView/HistoryVisibleBannerView.tsx +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Copyright (c) 2025 Element Creations Ltd. - * - * SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial - * Please see LICENSE files in the repository root for full details. - */ - -import { Link } from "@vector-im/compound-web"; -import React, { type JSX } from "react"; - -import { _t } from "../../utils/i18n"; -import { type ViewModel, useViewModel } from "../../viewmodel"; -import { Banner } from "../Banner"; - -export interface HistoryVisibleBannerViewActions { - /** - * Called when the user dismisses the banner. - */ - onClose: () => void; -} - -export interface HistoryVisibleBannerViewSnapshot { - /** - * Whether the banner is currently visible. - */ - visible: boolean; -} - -/** - * The view model for the banner. - */ -export type HistoryVisibleBannerViewModel = ViewModel & - HistoryVisibleBannerViewActions; - -interface HistoryVisibleBannerViewProps { - /** - * The view model for the banner. - */ - vm: HistoryVisibleBannerViewModel; -} - -/** - * A component to alert that history is shared to new members of the room. - * - * @example - * ```tsx - * - * ``` - */ -export function HistoryVisibleBannerView({ vm }: Readonly): JSX.Element { - const { visible } = useViewModel(vm); - - const contents = _t( - "room|status_bar|history_visible", - {}, - { - a: substituteATag, - }, - ); - - return ( - <> - {visible && ( - vm.onClose()}> - {contents} - - )} - - ); -} - -function substituteATag(sub: string): JSX.Element { - return ( - - {sub} - - ); -} diff --git a/packages/shared-components/src/composer/HistoryVisibleBannerView/__snapshots__/HistoryVisibleBannerView.test.tsx.snap b/packages/shared-components/src/composer/HistoryVisibleBannerView/__snapshots__/HistoryVisibleBannerView.test.tsx.snap deleted file mode 100644 index 612014f93e..0000000000 --- a/packages/shared-components/src/composer/HistoryVisibleBannerView/__snapshots__/HistoryVisibleBannerView.test.tsx.snap +++ /dev/null @@ -1,62 +0,0 @@ -// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html - -exports[`HistoryVisibleBannerView > renders a history visible banner 1`] = ` -
- -
-`; diff --git a/packages/shared-components/src/composer/HistoryVisibleBannerView/index.ts b/packages/shared-components/src/composer/HistoryVisibleBannerView/index.ts deleted file mode 100644 index 96bf208bea..0000000000 --- a/packages/shared-components/src/composer/HistoryVisibleBannerView/index.ts +++ /dev/null @@ -1,8 +0,0 @@ -/* - * Copyright (c) 2025 Element Creations Ltd. - * - * SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial - * Please see LICENSE files in the repository root for full details. - */ - -export * from "./HistoryVisibleBannerView"; diff --git a/packages/shared-components/src/i18n/strings/en_EN.json b/packages/shared-components/src/i18n/strings/en_EN.json index a1d2276ba5..b174a5c8d6 100644 --- a/packages/shared-components/src/i18n/strings/en_EN.json +++ b/packages/shared-components/src/i18n/strings/en_EN.json @@ -32,7 +32,6 @@ "exceeded_resource_limit_description": "Please contact your service administrator to continue using the service.", "exceeded_resource_limit_title": "Your message wasn't sent because this homeserver has exceeded a resource limit.", "failed_to_create_room_title": "Could not start a chat with this user", - "history_visible": "This room has been configured so that new members can read history. Learn More", "homeserver_blocked_title": "Your message wasn't sent because this homeserver has been blocked by its administrator.", "monthly_user_limit_reached_title": "Your message wasn't sent because this homeserver has hit its Monthly Active User Limit.", "requires_consent_agreement_title": "You can't send any messages until you review and agree to our terms and conditions.", diff --git a/packages/shared-components/src/index.ts b/packages/shared-components/src/index.ts index 49f6b4389f..83f074fa66 100644 --- a/packages/shared-components/src/index.ts +++ b/packages/shared-components/src/index.ts @@ -12,7 +12,6 @@ export * from "./audio/PlayPauseButton"; export * from "./audio/SeekBar"; export * from "./avatar/AvatarWithDetails"; export * from "./composer/Banner"; -export * from "./composer/HistoryVisibleBannerView"; export * from "./event-tiles/TextualEventView"; export * from "./message-body/MediaBody"; export * from "./pill-input/Pill"; diff --git a/playwright/snapshots/crypto/history-sharing.spec.ts/shared-history-invite-accepted-linux.png b/playwright/snapshots/crypto/history-sharing.spec.ts/shared-history-invite-accepted-linux.png index bdf1a0de47d061f8928b3ebb58d1c559c2c7bb85..9131b77c243b4035dad632c5e9ec0bbbee5357f2 100644 GIT binary patch literal 50637 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 diff --git a/src/components/views/composer/HistoryVisibleBanner.tsx b/src/components/views/composer/HistoryVisibleBanner.tsx deleted file mode 100644 index 85a6bd7fb9..0000000000 --- a/src/components/views/composer/HistoryVisibleBanner.tsx +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright (c) 2025 Element Creations Ltd. - * - * SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial - * Please see LICENSE files in the repository root for full details. - */ - -import { HistoryVisibleBannerView, useCreateAutoDisposedViewModel } from "@element-hq/web-shared-components"; -import React from "react"; -import { type Room } from "matrix-js-sdk/src/matrix"; - -import { HistoryVisibleBannerViewModel } from "../../../viewmodels/composer/HistoryVisibleBannerViewModel"; - -/** Wrapper around {@link HistoryVisibleBannerViewModel} for the creation of an auto-disposed view model. */ -export const HistoryVisibleBanner: React.FC<{ - /** The room instance associated with this banner view model. */ - room: Room; - - /** Whether the current user can send messages in the room. */ - canSendMessages: boolean; - - /** - * If not null, specifies the ID of the thread currently being viewed in the thread timeline side view, - * where the banner view is displayed as a child of the message composer. - */ - threadId: string | null; -}> = (props) => { - const vm = useCreateAutoDisposedViewModel(() => new HistoryVisibleBannerViewModel(props)); - return ; -}; diff --git a/src/components/views/rooms/MessageComposer.tsx b/src/components/views/rooms/MessageComposer.tsx index c23bc7917d..06c843f190 100644 --- a/src/components/views/rooms/MessageComposer.tsx +++ b/src/components/views/rooms/MessageComposer.tsx @@ -54,7 +54,6 @@ import { type MatrixClientProps, withMatrixClientHOC } from "../../../contexts/M import { UIFeature } from "../../../settings/UIFeature"; import { formatTimeLeft } from "../../../DateUtils"; import RoomReplacedSvg from "../../../../res/img/room_replaced.svg"; -import { HistoryVisibleBanner } from "../composer/HistoryVisibleBanner"; // The prefix used when persisting editor drafts to localstorage. export const WYSIWYG_EDITOR_STATE_STORAGE_PREFIX = "mx_wysiwyg_state_"; @@ -675,11 +674,6 @@ export class MessageComposer extends React.Component { return (
-
; "blockInvites": IBaseSetting; "Developer.elementCallUrl": IBaseSetting; - "acknowledgedHistoryVisibility": IBaseSetting; } export type SettingKey = keyof Settings; @@ -1499,8 +1498,4 @@ export const SETTINGS: Settings = { displayName: _td("devtools|settings|elementCallUrl"), default: "", }, - "acknowledgedHistoryVisibility": { - supportedLevels: [SettingLevel.ROOM_ACCOUNT], - default: false, - }, }; diff --git a/src/viewmodels/composer/HistoryVisibleBannerViewModel.tsx b/src/viewmodels/composer/HistoryVisibleBannerViewModel.tsx deleted file mode 100644 index 7d1ce9ec81..0000000000 --- a/src/viewmodels/composer/HistoryVisibleBannerViewModel.tsx +++ /dev/null @@ -1,184 +0,0 @@ -/* - * Copyright (c) 2025 Element Creations Ltd. - * - * SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial - * Please see LICENSE files in the repository root for full details. - */ - -import { - BaseViewModel, - type HistoryVisibleBannerViewModel as HistoryVisibleBannerViewModelInterface, - type HistoryVisibleBannerViewSnapshot, -} from "@element-hq/web-shared-components"; -import { HistoryVisibility, RoomStateEvent, type Room } from "matrix-js-sdk/src/matrix"; - -import SettingsStore from "../../settings/SettingsStore"; -import { SettingLevel } from "../../settings/SettingLevel"; - -/** - * A collection of {@link HistoryVisibility} levels that trigger the display of the history visible banner. - */ -const BANNER_VISIBLE_LEVELS = [HistoryVisibility.Shared, HistoryVisibility.WorldReadable]; - -interface Props { - /** - * The room instance associated with this banner view model. - */ - room: Room; - - /** - * Whether or not the current user is able to send messages in this room. - */ - canSendMessages: boolean; - - /** - * If not null, indicates the ID of the thread currently being viewed in the thread - * timeline side view, where the banner view is displayed as a child of the message - * composer. - */ - threadId: string | null; -} - -/** - * View model for the history visible banner, which prompts users that the current room - * history may be shared with new invitees, if they have not already acknowledged the - * banner. - * - * The view model operates using a simple 2-case algorithm: - * - * 1. When a user opens an encrypted room where `history_visibility` is not set to `joined`, - * and the user hasn't previously dismissed it for this particular room, display a banner. - * If the user dismisses the banner, update the client's local store to record that the - * banner has been dismissed. - * 2. When the user opens an encrypted room where `history_visibility` is set to `joined`, clear - * the dismissal flag if it was previously set. This ensures that if the room's history - * visibility changes from public to private and back to public, the banner will reappear - * when appropriate. - * - * This banner is only shown in the regular timeline view, not the thread timeline view, which is - * done by conditioning on the presence of `threadId` in the viewmodel's {@link Props}. - * - * See https://github.com/element-hq/element-meta/issues/2875 for more information. - */ -export class HistoryVisibleBannerViewModel - extends BaseViewModel - implements HistoryVisibleBannerViewModelInterface -{ - /** - * Watcher ID for the "feature_share_history_on_invite" setting. - */ - private readonly featureWatcher: string; - - /** - * Watcher ID for the "acknowledgedHistoryVisibility" setting specific to the room. - */ - private readonly acknowledgedWatcher: string; - - /** - * Computes the latest banner snapshot given the VM's props. - * @param props - See {@link Props}. - * @returns The latest snapshot. See {@link HistoryVisibleBannerViewSnapshot}. - */ - private static readonly computeSnapshot = ({ - room, - canSendMessages, - threadId, - }: Props): HistoryVisibleBannerViewSnapshot => { - const featureEnabled = SettingsStore.getValue("feature_share_history_on_invite"); - const acknowledged = SettingsStore.getValue("acknowledgedHistoryVisibility", room.roomId); - const isHistoryVisible = BANNER_VISIBLE_LEVELS.includes(room.getHistoryVisibility()); - - // This implements point 1. of the algorithm described above. In the order below, all - // of the following must be true for the banner to display: - // - The room history sharing feature must be enabled. - // - The room must be encrypted. - // - The user must be able to send messages. - // - The history must be visible. - // - The view should not be part of a thread timeline. - // - The user must not have acknowledged the banner. - return { - visible: - featureEnabled && - room.hasEncryptionStateEvent() && - canSendMessages && - isHistoryVisible && - !threadId && - !acknowledged, - }; - }; - - /** - * Creates a new view model instance. - * @param props - Properties for this view model. See {@link Props}. - */ - public constructor(props: Props) { - super(props, HistoryVisibleBannerViewModel.computeSnapshot(props)); - - this.disposables.trackListener(props.room, RoomStateEvent.Update, () => this.setSnapshot()); - - // `SettingsStore` is not an `EventListener`, so we must manage these manually. - this.featureWatcher = SettingsStore.watchSetting( - "feature_share_history_on_invite", - null, - (_key, _roomId, _level, value: boolean) => this.setSnapshot(), - ); - this.acknowledgedWatcher = SettingsStore.watchSetting( - "acknowledgedHistoryVisibility", - props.room.roomId, - (_key, _roomId, _level, value: boolean) => this.setSnapshot(), - ); - } - - /** - * Recompute and update this VM instance's snapshot. This will update the `acknowledgedHistoryVisibility` - * store entry if necessary. - */ - private setSnapshot(): void { - const acknowledged = SettingsStore.getValue("acknowledgedHistoryVisibility", this.props.room.roomId); - - // Reset the acknowleded flag when the history visibility is set back to joined. - if (this.props.room.getHistoryVisibility() === HistoryVisibility.Joined && acknowledged) { - SettingsStore.setValue( - "acknowledgedHistoryVisibility", - this.props.room.roomId, - SettingLevel.ROOM_ACCOUNT, - false, - ); - } - - this.snapshot.set(HistoryVisibleBannerViewModel.computeSnapshot(this.props)); - } - - /** - * Revoke the banner's acknoledgement status. - */ - public async revoke(): Promise { - await SettingsStore.setValue( - "acknowledgedHistoryVisibility", - this.props.room.roomId, - SettingLevel.ROOM_ACCOUNT, - false, - ); - } - - /** - * Called when the user dismisses the banner. - */ - public async onClose(): Promise { - await SettingsStore.setValue( - "acknowledgedHistoryVisibility", - this.props.room.roomId, - SettingLevel.ROOM_ACCOUNT, - true, - ); - } - - /** - * Dispose of the viewmodel and its settings listeners. - */ - public dispose(): void { - super.dispose(); - SettingsStore.unwatchSetting(this.featureWatcher); - SettingsStore.unwatchSetting(this.acknowledgedWatcher); - } -} diff --git a/test/test-utils/test-utils.ts b/test/test-utils/test-utils.ts index 9ebfdbf1f3..9bafa55c10 100644 --- a/test/test-utils/test-utils.ts +++ b/test/test-utils/test-utils.ts @@ -9,7 +9,6 @@ Please see LICENSE files in the repository root for full details. import EventEmitter from "events"; import { mocked, type MockedObject } from "jest-mock"; import { - type EventTimeline, MatrixEvent, type Room, type User, @@ -17,7 +16,7 @@ import { type IEvent, type RoomMember, type MatrixClient, - RoomState, + type EventTimeline, EventType, type IEventRelation, type IUnsigned, @@ -30,9 +29,9 @@ import { JoinRule, type OidcClientConfig, type GroupCall, - HistoryVisibility, - type ICreateRoomOpts, type EventStatus, + type ICreateRoomOpts, + RoomState, } from "matrix-js-sdk/src/matrix"; import { KnownMembership } from "matrix-js-sdk/src/types"; import { normalize } from "matrix-js-sdk/src/utils"; @@ -668,7 +667,6 @@ export function mkStubRoom( createThreadsTimelineSets: jest.fn().mockReturnValue(new Promise(() => {})), currentState: { getStateEvents: jest.fn((_type, key) => (key === undefined ? [] : null)), - getHistoryVisibility: jest.fn().mockReturnValue(HistoryVisibility.Joined), getMember: jest.fn(), mayClientSendStateEvent: jest.fn().mockReturnValue(true), maySendStateEvent: jest.fn().mockReturnValue(true), @@ -689,7 +687,6 @@ export function mkStubRoom( getCanonicalAlias: jest.fn(), getDMInviter: jest.fn(), getEventReadUpTo: jest.fn(() => null), - getHistoryVisibility: jest.fn().mockReturnValue(HistoryVisibility.Joined), getInvitedAndJoinedMemberCount: jest.fn().mockReturnValue(1), getJoinRule: jest.fn().mockReturnValue("invite"), getJoinedMemberCount: jest.fn().mockReturnValue(1), diff --git a/test/unit-tests/components/viewmodels/composer/HistoryVisibleBannerViewModel-test.tsx b/test/unit-tests/components/viewmodels/composer/HistoryVisibleBannerViewModel-test.tsx deleted file mode 100644 index b1ab6ef7ff..0000000000 --- a/test/unit-tests/components/viewmodels/composer/HistoryVisibleBannerViewModel-test.tsx +++ /dev/null @@ -1,199 +0,0 @@ -/* - * Copyright 2025 New Vector Ltd. - * - * SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial - * Please see LICENSE files in the repository root for full details. - */ - -import { Room } from "matrix-js-sdk/src/matrix"; - -import { SettingLevel } from "../../../../../src/settings/SettingLevel"; -import SettingsStore, { type CallbackFn } from "../../../../../src/settings/SettingsStore"; -import { mkEvent, stubClient, upsertRoomStateEvents } from "../../../../test-utils"; -import { HistoryVisibleBannerViewModel } from "../../../../../src/viewmodels/composer/HistoryVisibleBannerViewModel"; - -describe("HistoryVisibleBannerViewModel", () => { - const ROOM_ID = "!roomId:example.org"; - - let room: Room; - let watcherCallbacks: CallbackFn[]; - let acknowledgedHistoryVisibility: boolean; - - beforeEach(() => { - watcherCallbacks = []; - acknowledgedHistoryVisibility = false; - - jest.spyOn(SettingsStore, "setValue").mockImplementation(async (settingName, roomId, level, value) => { - if (settingName === "acknowledgedHistoryVisibility") { - acknowledgedHistoryVisibility = value; - } - watcherCallbacks.forEach((callbackFn) => callbackFn(settingName, roomId, level, value, value)); - }); - - jest.spyOn(SettingsStore, "getValue").mockImplementation((settingName, roomId) => { - if (settingName === "acknowledgedHistoryVisibility") { - return acknowledgedHistoryVisibility; - } - if (settingName === "feature_share_history_on_invite") { - return true; - } - return SettingsStore.getDefaultValue(settingName); - }); - - jest.spyOn(SettingsStore, "watchSetting").mockImplementation((settingName, roomId, callbackFn) => { - watcherCallbacks.push(callbackFn); - return `mockWatcherId-${settingName}-${roomId}`; - }); - - stubClient(); - room = new Room(ROOM_ID, {} as any, "@user:example.org"); - }); - - afterEach(() => { - jest.clearAllMocks(); - }); - - it("should not show the banner in unencrypted rooms", () => { - const vm = new HistoryVisibleBannerViewModel({ room, canSendMessages: true, threadId: null }); - expect(vm.getSnapshot().visible).toBe(false); - }); - - it("should not show the banner in encrypted rooms with joined history visibility", () => { - upsertRoomStateEvents(room, [ - mkEvent({ - event: true, - type: "m.room.encryption", - user: "@user1:server", - content: {}, - }), - mkEvent({ - event: true, - type: "m.room.history_visibility", - content: { - history_visibility: "joined", - }, - user: "@user1:server", - }), - ]); - - const vm = new HistoryVisibleBannerViewModel({ room, canSendMessages: true, threadId: null }); - expect(vm.getSnapshot().visible).toBe(false); - }); - - it("should not show the banner if it has been dismissed", async () => { - await SettingsStore.setValue("acknowledgedHistoryVisibility", ROOM_ID, SettingLevel.ROOM_ACCOUNT, true); - upsertRoomStateEvents(room, [ - mkEvent({ - event: true, - type: "m.room.encryption", - user: "@user1:server", - content: {}, - }), - mkEvent({ - event: true, - type: "m.room.history_visibility", - user: "@user1:server", - content: { - history_visibility: "shared", - }, - }), - ]); - - const vm = new HistoryVisibleBannerViewModel({ room, canSendMessages: true, threadId: null }); - expect(vm.getSnapshot().visible).toBe(false); - vm.dispose(); - }); - - it("should not show the banner in threads", () => { - upsertRoomStateEvents(room, [ - mkEvent({ - event: true, - type: "m.room.encryption", - user: "@user1:server", - content: {}, - }), - mkEvent({ - event: true, - type: "m.room.history_visibility", - user: "@user1:server", - content: { - history_visibility: "shared", - }, - }), - ]); - - const vm = new HistoryVisibleBannerViewModel({ room, canSendMessages: true, threadId: "some thread ID" }); - expect(vm.getSnapshot().visible).toBe(false); - vm.dispose(); - }); - - it("should not show the banner if the user cannot send messages", () => { - upsertRoomStateEvents(room, [ - mkEvent({ - event: true, - type: "m.room.encryption", - user: "@user1:server", - content: {}, - }), - mkEvent({ - event: true, - type: "m.room.history_visibility", - user: "@user1:server", - content: { - history_visibility: "shared", - }, - }), - ]); - - const vm = new HistoryVisibleBannerViewModel({ room, canSendMessages: false, threadId: null }); - expect(vm.getSnapshot().visible).toBe(false); - vm.dispose(); - }); - - it("should not show the banner if history visibility is `invited`", () => { - upsertRoomStateEvents(room, [ - mkEvent({ - event: true, - type: "m.room.encryption", - user: "@user1:server", - content: {}, - }), - mkEvent({ - event: true, - type: "m.room.history_visibility", - user: "@user1:server", - content: { - history_visibility: "invited", - }, - }), - ]); - - const vm = new HistoryVisibleBannerViewModel({ room, canSendMessages: true, threadId: null }); - expect(vm.getSnapshot().visible).toBe(false); - vm.dispose(); - }); - - it("should show the banner in encrypted rooms with shared history visibility", async () => { - upsertRoomStateEvents(room, [ - mkEvent({ - event: true, - type: "m.room.encryption", - user: "@user1:server", - content: {}, - }), - mkEvent({ - event: true, - type: "m.room.history_visibility", - user: "@user1:server", - content: { - history_visibility: "shared", - }, - }), - ]); - - const vm = new HistoryVisibleBannerViewModel({ room, canSendMessages: true, threadId: null }); - expect(vm.getSnapshot().visible).toBe(true); - await vm.onClose(); - expect(vm.getSnapshot().visible).toBe(false); - }); -});