From d060b77e8f7dc448eb3a21b07bb1a73fe51391f6 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Wed, 7 Jan 2026 15:58:28 +0000 Subject: [PATCH] Update notification icons using Compound icons (#31671) * Update notification icons using Compound icons For https://element-io.atlassian.net/browse/PSB-968 This removes icons in places where we only have on/off variants rather than the previous 4 Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Update tests Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Update screenshot Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --------- Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- .../user-menu.spec.ts/user-menu-linux.png | Bin 16137 -> 15024 bytes .../tabs/room/_NotificationSettingsTab.pcss | 29 --------- res/img/element-icons/notifications.svg | 5 -- .../roomlist/notifications-default.svg | 5 -- .../roomlist/notifications-dm.svg | 3 - .../roomlist/notifications-off.svg | 7 --- src/components/structures/UserMenu.tsx | 4 +- .../RoomNotificationContextMenu.tsx | 8 --- .../spotlight/RoomResultContextMenus.tsx | 25 ++++---- .../views/rooms/NotificationDecoration.tsx | 22 +++---- .../RoomListPanel/RoomListItemMenuView.tsx | 28 +++++---- .../tabs/room/NotificationSettingsTab.tsx | 4 -- .../NotificationDecoration-test.tsx.snap | 2 +- .../__snapshots__/RoomTile-test.tsx.snap | 56 ++++++++++++++++-- .../room/NotificationSettingsTab-test.tsx | 8 +-- 15 files changed, 97 insertions(+), 109 deletions(-) delete mode 100644 res/img/element-icons/notifications.svg delete mode 100644 res/img/element-icons/roomlist/notifications-default.svg delete mode 100644 res/img/element-icons/roomlist/notifications-dm.svg delete mode 100644 res/img/element-icons/roomlist/notifications-off.svg diff --git a/playwright/snapshots/user-menu/user-menu.spec.ts/user-menu-linux.png b/playwright/snapshots/user-menu/user-menu.spec.ts/user-menu-linux.png index 79335b66aebb32f2c3cbc2bd93d8825e3fc6d2e7..94efd93b7e3324d4b7abc6c2769911edb77fcd3f 100644 GIT binary patch literal 15024 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 JREin;|2NrV27Lek literal 16137 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 nl<24@r-}>@Ryg2V*b|h&DdGR8#FFyYR;~#Re diff --git a/res/css/views/settings/tabs/room/_NotificationSettingsTab.pcss b/res/css/views/settings/tabs/room/_NotificationSettingsTab.pcss index 38609c7fd4..36c852c8df 100644 --- a/res/css/views/settings/tabs/room/_NotificationSettingsTab.pcss +++ b/res/css/views/settings/tabs/room/_NotificationSettingsTab.pcss @@ -17,21 +17,8 @@ Please see LICENSE files in the repository root for full details. font-weight: var(--cpd-font-weight-semibold); margin-top: 16px; position: relative; - padding-left: 8px; align-items: center; - &::before { - content: ""; - position: absolute; - height: 24px; - width: 24px; - left: 0; - mask-repeat: no-repeat; - mask-position: center; - mask-size: contain; - background-color: $secondary-content; - } - input + div { margin-top: 8px; } @@ -44,22 +31,6 @@ Please see LICENSE files in the repository root for full details. margin-right: 32px; } } - - .mx_NotificationSettingsTab_defaultEntry::before { - mask-image: url("$(res)/img/element-icons/notifications.svg"); - } - - .mx_NotificationSettingsTab_allMessagesEntry::before { - mask-image: url("$(res)/img/element-icons/roomlist/notifications-default.svg"); - } - - .mx_NotificationSettingsTab_mentionsKeywordsEntry::before { - mask-image: url("$(res)/img/element-icons/roomlist/notifications-dm.svg"); - } - - .mx_NotificationSettingsTab_noneEntry::before { - mask-image: url("$(res)/img/element-icons/roomlist/notifications-off.svg"); - } } input[type="file"].mx_NotificationSound_soundUpload { diff --git a/res/img/element-icons/notifications.svg b/res/img/element-icons/notifications.svg deleted file mode 100644 index 7709c673f1..0000000000 --- a/res/img/element-icons/notifications.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/res/img/element-icons/roomlist/notifications-default.svg b/res/img/element-icons/roomlist/notifications-default.svg deleted file mode 100644 index c3af0ef809..0000000000 --- a/res/img/element-icons/roomlist/notifications-default.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/res/img/element-icons/roomlist/notifications-dm.svg b/res/img/element-icons/roomlist/notifications-dm.svg deleted file mode 100644 index 9259c4d880..0000000000 --- a/res/img/element-icons/roomlist/notifications-dm.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/res/img/element-icons/roomlist/notifications-off.svg b/res/img/element-icons/roomlist/notifications-off.svg deleted file mode 100644 index bbc2dcfeb9..0000000000 --- a/res/img/element-icons/roomlist/notifications-off.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/src/components/structures/UserMenu.tsx b/src/components/structures/UserMenu.tsx index 249a5f456b..d077b3da1b 100644 --- a/src/components/structures/UserMenu.tsx +++ b/src/components/structures/UserMenu.tsx @@ -15,6 +15,7 @@ import { QrCodeIcon, SettingsSolidIcon, LeaveIcon, + NotificationsSolidIcon, } from "@vector-im/compound-design-tokens/assets/web/icons"; import { MatrixClientPeg } from "../../MatrixClientPeg"; @@ -51,7 +52,6 @@ import { type ViewHomePagePayload } from "../../dispatcher/payloads/ViewHomePage import { SDKContext } from "../../contexts/SDKContext"; import { shouldShowFeedback } from "../../utils/Feedback"; import { Icon as DarkLightModeSvg } from "../../../res/img/element-icons/roomlist/dark-light-mode.svg"; -import { Icon as NotificationsIcon } from "../../../res/img/element-icons/notifications.svg"; interface IProps { isPanelCollapsed: boolean; @@ -337,7 +337,7 @@ export default class UserMenu extends React.Component { {homeButton} {linkNewDeviceButton} } + icon={} label={_t("notifications|enable_prompt_toast_title")} onClick={(e) => this.onSettingsOpen(e, UserTab.Notifications)} /> diff --git a/src/components/views/context_menus/RoomNotificationContextMenu.tsx b/src/components/views/context_menus/RoomNotificationContextMenu.tsx index 9ad381736a..bcf240dddd 100644 --- a/src/components/views/context_menus/RoomNotificationContextMenu.tsx +++ b/src/components/views/context_menus/RoomNotificationContextMenu.tsx @@ -20,10 +20,6 @@ import IconizedContextMenu, { IconizedContextMenuRadio, } from "../context_menus/IconizedContextMenu"; import { type ButtonEvent } from "../elements/AccessibleButton"; -import { Icon as NotificationsIcon } from "../../../../res/img/element-icons/notifications.svg"; -import { Icon as NotificationsDefaultIcon } from "../../../../res/img/element-icons/roomlist/notifications-default.svg"; -import { Icon as NotificationsDmIcon } from "../../../../res/img/element-icons/roomlist/notifications-dm.svg"; -import { Icon as NotificationsOffIcon } from "../../../../res/img/element-icons/roomlist/notifications-off.svg"; interface IProps extends IContextMenuProps { room: Room; @@ -50,7 +46,6 @@ export const RoomNotificationContextMenu: React.FC = ({ room, onFinished } onClick={wrapHandler(() => setNotificationState(RoomNotifState.AllMessages))} /> ); @@ -59,7 +54,6 @@ export const RoomNotificationContextMenu: React.FC = ({ room, onFinished } onClick={wrapHandler(() => setNotificationState(RoomNotifState.AllMessagesLoud))} /> ); @@ -68,7 +62,6 @@ export const RoomNotificationContextMenu: React.FC = ({ room, onFinished } onClick={wrapHandler(() => setNotificationState(RoomNotifState.MentionsOnly))} /> ); @@ -77,7 +70,6 @@ export const RoomNotificationContextMenu: React.FC = ({ room, onFinished } onClick={wrapHandler(() => setNotificationState(RoomNotifState.Mute))} /> ); diff --git a/src/components/views/dialogs/spotlight/RoomResultContextMenus.tsx b/src/components/views/dialogs/spotlight/RoomResultContextMenus.tsx index 8bf5c1e22b..c11bd777e2 100644 --- a/src/components/views/dialogs/spotlight/RoomResultContextMenus.tsx +++ b/src/components/views/dialogs/spotlight/RoomResultContextMenus.tsx @@ -7,8 +7,12 @@ Please see LICENSE files in the repository root for full details. */ import { type Room } from "matrix-js-sdk/src/matrix"; -import React, { type JSX, Fragment, useState, type ReactNode } from "react"; -import { OverflowHorizontalIcon } from "@vector-im/compound-design-tokens/assets/web/icons"; +import React, { Fragment, type JSX, type ReactNode, useState } from "react"; +import { + NotificationsOffSolidIcon, + OverflowHorizontalIcon, + NotificationsSolidIcon, +} from "@vector-im/compound-design-tokens/assets/web/icons"; import { ContextMenuTooltipButton } from "../../../../accessibility/context_menu/ContextMenuTooltipButton"; import { useNotificationState } from "../../../../hooks/useRoomNotificationState"; @@ -21,23 +25,18 @@ import { type ButtonEvent } from "../../elements/AccessibleButton"; import { contextMenuBelow } from "../../rooms/RoomTile"; import { shouldShowComponent } from "../../../../customisations/helpers/UIComponents"; import { UIComponent } from "../../../../settings/UIFeature"; -import { Icon as NotificationsIcon } from "../../../../../res/img/element-icons/notifications.svg"; -import { Icon as NotificationsDefaultIcon } from "../../../../../res/img/element-icons/roomlist/notifications-default.svg"; -import { Icon as NotificationsDmIcon } from "../../../../../res/img/element-icons/roomlist/notifications-dm.svg"; -import { Icon as NotificationsOffIcon } from "../../../../../res/img/element-icons/roomlist/notifications-off.svg"; interface Props { room: Room; } export function getNotificationIcon(state: RoomNotifState): ReactNode { - const icons: Record = { - [RoomNotifState.AllMessages]: , - [RoomNotifState.AllMessagesLoud]: , - [RoomNotifState.MentionsOnly]: , - [RoomNotifState.Mute]: , - }; - return icons[state]; + switch (state) { + case RoomNotifState.Mute: + return ; + default: + return ; + } } export function RoomResultContextMenus({ room }: Props): JSX.Element { diff --git a/src/components/views/rooms/NotificationDecoration.tsx b/src/components/views/rooms/NotificationDecoration.tsx index 321625adb1..732793551b 100644 --- a/src/components/views/rooms/NotificationDecoration.tsx +++ b/src/components/views/rooms/NotificationDecoration.tsx @@ -6,13 +6,15 @@ */ import React, { type HTMLProps, type JSX } from "react"; -import MentionIcon from "@vector-im/compound-design-tokens/assets/web/icons/mention"; -import ErrorIcon from "@vector-im/compound-design-tokens/assets/web/icons/error-solid"; -import NotificationOffIcon from "@vector-im/compound-design-tokens/assets/web/icons/notifications-off-solid"; -import VideoCallIcon from "@vector-im/compound-design-tokens/assets/web/icons/video-call-solid"; -import EmailIcon from "@vector-im/compound-design-tokens/assets/web/icons/email-solid"; +import { + MentionIcon, + ErrorIcon, + NotificationsOffSolidIcon, + VideoCallSolidIcon, + EmailSolidIcon, + VoiceCallSolidIcon, +} from "@vector-im/compound-design-tokens/assets/web/icons"; import { UnreadCounter, Unread } from "@vector-im/compound-web"; -import VoiceCallIcon from "@vector-im/compound-design-tokens/assets/web/icons/voice-call-solid"; import { CallType } from "matrix-js-sdk/src/webrtc/call"; import { Flex } from "@element-hq/web-shared-components"; @@ -72,16 +74,16 @@ export function NotificationDecoration({ > {isUnsentMessage && } {callType === CallType.Video && ( - + )} {callType === CallType.Voice && ( - + )} - {invited && } + {invited && } {isMention && } {(isMention || isNotification) && } {isActivityNotification && } - {muted && } + {muted && } ); } diff --git a/src/components/views/rooms/RoomListPanel/RoomListItemMenuView.tsx b/src/components/views/rooms/RoomListPanel/RoomListItemMenuView.tsx index 1162d07e9a..7c5dd5ba1a 100644 --- a/src/components/views/rooms/RoomListPanel/RoomListItemMenuView.tsx +++ b/src/components/views/rooms/RoomListPanel/RoomListItemMenuView.tsx @@ -7,17 +7,19 @@ import React, { type JSX, useState } from "react"; import { IconButton, Menu, MenuItem, Separator, ToggleMenuItem } from "@vector-im/compound-web"; -import MarkAsReadIcon from "@vector-im/compound-design-tokens/assets/web/icons/mark-as-read"; -import MarkAsUnreadIcon from "@vector-im/compound-design-tokens/assets/web/icons/mark-as-unread"; -import FavouriteIcon from "@vector-im/compound-design-tokens/assets/web/icons/favourite"; -import ArrowDownIcon from "@vector-im/compound-design-tokens/assets/web/icons/arrow-down"; -import UserAddIcon from "@vector-im/compound-design-tokens/assets/web/icons/user-add"; -import LinkIcon from "@vector-im/compound-design-tokens/assets/web/icons/link"; -import LeaveIcon from "@vector-im/compound-design-tokens/assets/web/icons/leave"; -import OverflowIcon from "@vector-im/compound-design-tokens/assets/web/icons/overflow-horizontal"; -import NotificationIcon from "@vector-im/compound-design-tokens/assets/web/icons/notifications-solid"; -import NotificationOffIcon from "@vector-im/compound-design-tokens/assets/web/icons/notifications-off-solid"; -import CheckIcon from "@vector-im/compound-design-tokens/assets/web/icons/check"; +import { + MarkAsReadIcon, + MarkAsUnreadIcon, + FavouriteIcon, + ArrowDownIcon, + UserAddIcon, + LinkIcon, + LeaveIcon, + OverflowHorizontalIcon, + NotificationsSolidIcon, + NotificationsOffSolidIcon, + CheckIcon, +} from "@vector-im/compound-design-tokens/assets/web/icons"; import { type Room } from "matrix-js-sdk/src/matrix"; import { Flex } from "@element-hq/web-shared-components"; import classNames from "classnames"; @@ -81,7 +83,7 @@ function MoreOptionsMenu({ vm }: MoreOptionsMenuProps): JSX.Element { aria-label={_t("room_list|room|more_options")} size="24px" > - + } > @@ -190,7 +192,7 @@ function NotificationMenu({ vm }: NotificationMenuProps): JSX.Element { tooltip={_t("room_list|notification_options")} aria-label={_t("room_list|notification_options")} > - {vm.isNotificationMute ? : } + {vm.isNotificationMute ? : } } > diff --git a/src/components/views/settings/tabs/room/NotificationSettingsTab.tsx b/src/components/views/settings/tabs/room/NotificationSettingsTab.tsx index f400024c0b..a66c75d65c 100644 --- a/src/components/views/settings/tabs/room/NotificationSettingsTab.tsx +++ b/src/components/views/settings/tabs/room/NotificationSettingsTab.tsx @@ -170,7 +170,6 @@ export default class NotificationsSettingsTab extends React.Component {_t("notifications|default")} @@ -195,7 +194,6 @@ export default class NotificationsSettingsTab extends React.Component {_t("notifications|all_messages")} @@ -207,7 +205,6 @@ export default class NotificationsSettingsTab extends React.Component {_t("notifications|mentions_and_keywords")} @@ -232,7 +229,6 @@ export default class NotificationsSettingsTab extends React.Component {_t("common|off")} diff --git a/test/unit-tests/components/views/rooms/__snapshots__/NotificationDecoration-test.tsx.snap b/test/unit-tests/components/views/rooms/__snapshots__/NotificationDecoration-test.tsx.snap index 9cbc1a6464..9706fb7024 100644 --- a/test/unit-tests/components/views/rooms/__snapshots__/NotificationDecoration-test.tsx.snap +++ b/test/unit-tests/components/views/rooms/__snapshots__/NotificationDecoration-test.tsx.snap @@ -157,7 +157,7 @@ exports[` should render the unset message decoration 1 xmlns="http://www.w3.org/2000/svg" > diff --git a/test/unit-tests/components/views/rooms/__snapshots__/RoomTile-test.tsx.snap b/test/unit-tests/components/views/rooms/__snapshots__/RoomTile-test.tsx.snap index 1567cb594b..3475835ef0 100644 --- a/test/unit-tests/components/views/rooms/__snapshots__/RoomTile-test.tsx.snap +++ b/test/unit-tests/components/views/rooms/__snapshots__/RoomTile-test.tsx.snap @@ -81,7 +81,19 @@ exports[`RoomTile when message previews are enabled and there is a message in a class="mx_AccessibleButton mx_RoomTile_notificationsButton" role="button" tabindex="-1" - /> + > + + + + `; @@ -175,7 +187,19 @@ exports[`RoomTile when message previews are enabled and there is a message in th class="mx_AccessibleButton mx_RoomTile_notificationsButton" role="button" tabindex="-1" - /> + > + + + + `; @@ -250,7 +274,19 @@ exports[`RoomTile when message previews are enabled should render a room without class="mx_AccessibleButton mx_RoomTile_notificationsButton" role="button" tabindex="-1" - /> + > + + + + `; @@ -324,7 +360,19 @@ exports[`RoomTile when message previews are not enabled should render the room 1 class="mx_AccessibleButton mx_RoomTile_notificationsButton" role="button" tabindex="-1" - /> + > + + + + `; diff --git a/test/unit-tests/components/views/settings/tabs/room/NotificationSettingsTab-test.tsx b/test/unit-tests/components/views/settings/tabs/room/NotificationSettingsTab-test.tsx index f4efc39e1f..3d0cc39a2e 100644 --- a/test/unit-tests/components/views/settings/tabs/room/NotificationSettingsTab-test.tsx +++ b/test/unit-tests/components/views/settings/tabs/room/NotificationSettingsTab-test.tsx @@ -7,7 +7,7 @@ Please see LICENSE files in the repository root for full details. */ import React from "react"; -import { render, type RenderResult, screen } from "jest-matrix-react"; +import { render, type RenderResult, screen, within } from "jest-matrix-react"; import { type MatrixClient } from "matrix-js-sdk/src/matrix"; import userEvent from "@testing-library/user-event"; @@ -19,7 +19,7 @@ import { type RoomEchoChamber } from "../../../../../../../src/stores/local-echo import SettingsStore from "../../../../../../../src/settings/SettingsStore"; import { SettingLevel } from "../../../../../../../src/settings/SettingLevel"; -describe("NotificatinSettingsTab", () => { +describe("NotificationSettingsTab", () => { const roomId = "!room:example.com"; let cli: MatrixClient; let roomProps: RoomEchoChamber; @@ -45,9 +45,7 @@ describe("NotificatinSettingsTab", () => { const tab = renderTab(); // settings link of mentions_only volume - const settingsLink = tab.container.querySelector( - "label.mx_NotificationSettingsTab_mentionsKeywordsEntry div.mx_AccessibleButton", - ); + const settingsLink = within(tab.getByText("@mentions & keywords")).getByRole("button", { name: "settings" }); if (!settingsLink) throw new Error("settings link does not exist."); await userEvent.click(settingsLink);