diff --git a/playwright/e2e/release-announcement/releaseAnnouncement.spec.ts b/playwright/e2e/release-announcement/releaseAnnouncement.spec.ts index 080c1b0329c..34c90ddf038 100644 --- a/playwright/e2e/release-announcement/releaseAnnouncement.spec.ts +++ b/playwright/e2e/release-announcement/releaseAnnouncement.spec.ts @@ -32,20 +32,26 @@ test.describe("Release announcement", () => { // dismiss the toast so the announcement appears await page.getByRole("button", { name: "Dismiss" }).click(); - const name = "Chats has a new look!"; + const newSoundsName = "We’ve refreshed your sounds"; + // The new sounds release announcement should be displayed + await util.assertReleaseAnnouncementIsVisible(newSoundsName); + // Hide the new sounds release announcement + const newSoundsDialog = util.getReleaseAnnouncement(newSoundsName); + await newSoundsDialog.getByRole("button", { name: "OK" }).click(); - // The release announcement should be displayed - await util.assertReleaseAnnouncementIsVisible(name); - // Hide the release announcement - const dialog = util.getReleaseAnnouncement(name); + const newRoomListName = "Chats has a new look!"; + // The new room list release announcement should be displayed + await util.assertReleaseAnnouncementIsVisible(newRoomListName); + // Hide the new room list release announcement + const dialog = util.getReleaseAnnouncement(newRoomListName); await dialog.getByRole("button", { name: "Next" }).click(); - await util.assertReleaseAnnouncementIsNotVisible(name); + await util.assertReleaseAnnouncementIsNotVisible(newRoomListName); await page.reload(); await expect(page.getByRole("button", { name: "Room options" })).toBeVisible(); - // Check that once the release announcement has been marked as viewed, it does not appear again - await util.assertReleaseAnnouncementIsNotVisible(name); + // Check that once the release announcements has been marked as viewed, it does not appear again + await util.assertReleaseAnnouncementIsNotVisible(newRoomListName); }, ); }); diff --git "a/playwright/snapshots/release-announcement/releaseAnnouncement.spec.ts/release-announcement-We\342\200\231ve-refreshed-your-sounds-linux.png" "b/playwright/snapshots/release-announcement/releaseAnnouncement.spec.ts/release-announcement-We\342\200\231ve-refreshed-your-sounds-linux.png" new file mode 100644 index 00000000000..0f4c80ac9e8 Binary files /dev/null and "b/playwright/snapshots/release-announcement/releaseAnnouncement.spec.ts/release-announcement-We\342\200\231ve-refreshed-your-sounds-linux.png" differ diff --git a/src/components/views/spaces/SpacePanel.tsx b/src/components/views/spaces/SpacePanel.tsx index 9f0d534767b..984b33bb12e 100644 --- a/src/components/views/spaces/SpacePanel.tsx +++ b/src/components/views/spaces/SpacePanel.tsx @@ -68,6 +68,7 @@ import { ThreadsActivityCentre } from "./threads-activity-centre/"; import AccessibleButton from "../elements/AccessibleButton"; import { Landmark, LandmarkNavigation } from "../../../accessibility/LandmarkNavigation"; import { KeyboardShortcut } from "../settings/KeyboardShortcut"; +import { ReleaseAnnouncement } from "../../structures/ReleaseAnnouncement"; const useSpaces = (): [Room[], MetaSpace[], Room[], SpaceKey] => { const invites = useEventEmitterState(SpaceStore.instance, UPDATE_INVITED_SPACES, () => { @@ -379,61 +380,72 @@ const SpacePanel: React.FC = () => { onDragEndHandler(); }} > - + )} diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json index 28efb495e4b..5f68bb2af6e 100644 --- a/src/i18n/strings/en_EN.json +++ b/src/i18n/strings/en_EN.json @@ -2860,6 +2860,10 @@ "rule_suppress_notices": "Messages sent by bot", "rule_tombstone": "When rooms are upgraded", "show_message_desktop_notification": "Show message in desktop notification", + "sounds_release_announcement": { + "description": "Your notification ping and call ringer have been updated—clearer, quicker, and less disruptive", + "title": "We’ve refreshed your sounds" + }, "voip": "Audio and Video calls" }, "preferences": { diff --git a/src/stores/ReleaseAnnouncementStore.ts b/src/stores/ReleaseAnnouncementStore.ts index 67e37ef773f..f828ff198f7 100644 --- a/src/stores/ReleaseAnnouncementStore.ts +++ b/src/stores/ReleaseAnnouncementStore.ts @@ -18,7 +18,13 @@ import ToastStore from "./ToastStore"; /** * The features are shown in the array order. */ -const FEATURES = ["newRoomList_intro", "newRoomList_sort", "newRoomList_filter", "newRoomList_settings"] as const; +const FEATURES = [ + "newNotificationSounds", + "newRoomList_intro", + "newRoomList_sort", + "newRoomList_filter", + "newRoomList_settings", +] as const; /** * All the features that can be shown in the release announcements. */ diff --git a/test/unit-tests/components/structures/ReleaseAnnouncement-test.tsx b/test/unit-tests/components/structures/ReleaseAnnouncement-test.tsx index 2076b72e202..d7f576ddef3 100644 --- a/test/unit-tests/components/structures/ReleaseAnnouncement-test.tsx +++ b/test/unit-tests/components/structures/ReleaseAnnouncement-test.tsx @@ -23,7 +23,7 @@ describe("ReleaseAnnouncement", () => { function renderReleaseAnnouncement() { return render( compose menu should display the compose menu 1`] >

compose menu should display the compose menu 1`] class="_icon-button_1pz9o_8 mx_SpaceMenu_button" data-kind="primary" data-state="closed" - id="radix-«rm»" + id="radix-«rk»" role="button" style="--cpd-icon-button-size: 20px;" tabindex="0" @@ -58,18 +57,17 @@ exports[` compose menu should display the compose menu 1`]

-