From 08c331f1417dffcd732db48cd58e208248fbfc0b Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Mon, 14 Oct 2024 16:30:15 +0100 Subject: [PATCH 1/3] Deduplicate icons using Compound Design Tokens Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- res/css/structures/_AutocompleteInput.pcss | 4 ++-- res/css/structures/_RoomSearch.pcss | 10 +++++----- res/css/views/auth/_AuthBody.pcss | 3 ++- res/css/views/dialogs/_InviteDialog.pcss | 5 ++++- res/img/compound/checkbox-32px.svg | 3 --- res/img/compound/error-16px.svg | 3 --- res/img/compound/padlock-32px.svg | 3 --- res/img/element-icons/Email-icon.svg | 3 --- res/img/element-icons/roomlist/search.svg | 3 --- res/img/feather-customised/help-circle.svg | 6 ------ res/img/icon-pill-remove.svg | 1 - res/img/plus.svg | 13 ------------- src/components/structures/AutocompleteInput.tsx | 7 +++---- src/components/structures/ErrorMessage.tsx | 5 ++--- .../structures/auth/ForgotPassword.tsx | 7 +++---- .../auth/forgot-password/EnterEmail.tsx | 2 +- src/components/views/dialogs/InviteDialog.tsx | 14 +++++++------- src/components/views/elements/AppPermission.tsx | 2 +- .../views/messages/DecryptionFailureBody.tsx | 4 ++-- src/components/views/rooms/EntityTile.tsx | 16 ---------------- .../components/atoms/VoiceBroadcastError.tsx | 3 +-- .../VoiceBroadcastRecordingConnectionError.tsx | 2 +- 22 files changed, 34 insertions(+), 85 deletions(-) delete mode 100644 res/img/compound/checkbox-32px.svg delete mode 100644 res/img/compound/error-16px.svg delete mode 100644 res/img/compound/padlock-32px.svg delete mode 100644 res/img/element-icons/Email-icon.svg delete mode 100644 res/img/element-icons/roomlist/search.svg delete mode 100644 res/img/feather-customised/help-circle.svg delete mode 100644 res/img/icon-pill-remove.svg delete mode 100644 res/img/plus.svg diff --git a/res/css/structures/_AutocompleteInput.pcss b/res/css/structures/_AutocompleteInput.pcss index 87501fe9a2..409d67ceea 100644 --- a/res/css/structures/_AutocompleteInput.pcss +++ b/res/css/structures/_AutocompleteInput.pcss @@ -69,8 +69,8 @@ Please see LICENSE files in the repository root for full details. font-size: $font-12px; } -.mx_AutocompleteInput_editor_selection_remove_button { - padding: 0 $spacing-4; +.mx_AutocompleteInput_editor_selection_remove_button svg { + vertical-align: middle; } .mx_AutocompleteInput_matches { diff --git a/res/css/structures/_RoomSearch.pcss b/res/css/structures/_RoomSearch.pcss index 61760c420f..b3e084e296 100644 --- a/res/css/structures/_RoomSearch.pcss +++ b/res/css/structures/_RoomSearch.pcss @@ -24,13 +24,13 @@ Please see LICENSE files in the repository root for full details. cursor: pointer; .mx_RoomSearch_icon { - width: 16px; - height: 16px; - mask: url("$(res)/img/element-icons/roomlist/search.svg"); + width: 20px; + height: 20px; + mask-image: url("@vector-im/compound-design-tokens/icons/search.svg"); mask-repeat: no-repeat; + mask-size: contain; background-color: $secondary-content; - margin-left: 7px; - margin-bottom: 2px; + margin-left: var(--cpd-space-2x); flex-shrink: 0; } diff --git a/res/css/views/auth/_AuthBody.pcss b/res/css/views/auth/_AuthBody.pcss index 6a7082fc87..cbb4561d8a 100644 --- a/res/css/views/auth/_AuthBody.pcss +++ b/res/css/views/auth/_AuthBody.pcss @@ -54,12 +54,13 @@ Please see LICENSE files in the repository root for full details. .mx_AuthBody_icon { width: 40px; + height: 40px; } .mx_AuthBody_lockIcon { color: $secondary-content; height: 32px; - margin-bottom: -3px; /* tweak to align all icons on different forgot password steps */ + width: 32px; } .mx_AuthBody_text { diff --git a/res/css/views/dialogs/_InviteDialog.pcss b/res/css/views/dialogs/_InviteDialog.pcss index 9283d9d739..7a3ca6bd3c 100644 --- a/res/css/views/dialogs/_InviteDialog.pcss +++ b/res/css/views/dialogs/_InviteDialog.pcss @@ -174,8 +174,11 @@ Please see LICENSE files in the repository root for full details. .mx_InviteDialog_userTile_remove { display: inline-block; - margin-inline-start: $spacing-4; vertical-align: middle; + + svg { + vertical-align: middle; + } } } diff --git a/res/img/compound/checkbox-32px.svg b/res/img/compound/checkbox-32px.svg deleted file mode 100644 index f1ee8b7dc2..0000000000 --- a/res/img/compound/checkbox-32px.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/res/img/compound/error-16px.svg b/res/img/compound/error-16px.svg deleted file mode 100644 index e2e68f431c..0000000000 --- a/res/img/compound/error-16px.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/res/img/compound/padlock-32px.svg b/res/img/compound/padlock-32px.svg deleted file mode 100644 index d349bf0a97..0000000000 --- a/res/img/compound/padlock-32px.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/res/img/element-icons/Email-icon.svg b/res/img/element-icons/Email-icon.svg deleted file mode 100644 index c92b153cf0..0000000000 --- a/res/img/element-icons/Email-icon.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/res/img/element-icons/roomlist/search.svg b/res/img/element-icons/roomlist/search.svg deleted file mode 100644 index b6a1ad100f..0000000000 --- a/res/img/element-icons/roomlist/search.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/res/img/feather-customised/help-circle.svg b/res/img/feather-customised/help-circle.svg deleted file mode 100644 index 61b853aae8..0000000000 --- a/res/img/feather-customised/help-circle.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/res/img/icon-pill-remove.svg b/res/img/icon-pill-remove.svg deleted file mode 100644 index adf6fd4771..0000000000 --- a/res/img/icon-pill-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/res/img/plus.svg b/res/img/plus.svg deleted file mode 100644 index e1d59ec6f4..0000000000 --- a/res/img/plus.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - Line + Line - Created with Sketch. - - - - - - - - diff --git a/src/components/structures/AutocompleteInput.tsx b/src/components/structures/AutocompleteInput.tsx index 71d81c4ce5..5e930d5f1b 100644 --- a/src/components/structures/AutocompleteInput.tsx +++ b/src/components/structures/AutocompleteInput.tsx @@ -8,13 +8,12 @@ Please see LICENSE files in the repository root for full details. import React, { useState, ReactNode, ChangeEvent, KeyboardEvent, useRef, ReactElement } from "react"; import classNames from "classnames"; +import { SearchIcon, CloseIcon } from "@vector-im/compound-design-tokens/assets/web/icons"; import Autocompleter from "../../autocomplete/AutocompleteProvider"; import { Key } from "../../Keyboard"; import { ICompletion } from "../../autocomplete/Autocompleter"; import AccessibleButton from "../../components/views/elements/AccessibleButton"; -import { Icon as PillRemoveIcon } from "../../../res/img/icon-pill-remove.svg"; -import { Icon as SearchIcon } from "../../../res/img/element-icons/roomlist/search.svg"; import useFocus from "../../hooks/useFocus"; interface AutocompleteInputProps { @@ -119,7 +118,7 @@ export const AutocompleteInput: React.FC = ({ onClick={onClickInputArea} data-testid="autocomplete-editor" > - + {selection.map((item) => ( = ({ item, onClick, render }) onClick={() => onClick(item)} data-testid={`autocomplete-selection-remove-button-${item.completionId}`} > - + ); diff --git a/src/components/structures/ErrorMessage.tsx b/src/components/structures/ErrorMessage.tsx index f9292c499c..58c523272b 100644 --- a/src/components/structures/ErrorMessage.tsx +++ b/src/components/structures/ErrorMessage.tsx @@ -7,8 +7,7 @@ Please see LICENSE files in the repository root for full details. */ import React, { ReactNode } from "react"; - -import { Icon as WarningBadgeIcon } from "../../../res/img/compound/error-16px.svg"; +import { WarningIcon } from "@vector-im/compound-design-tokens/assets/web/icons"; interface ErrorMessageProps { message: string | ReactNode | null; @@ -19,7 +18,7 @@ interface ErrorMessageProps { * Reserves two lines to display errors to prevent layout shifts when the error pops up. */ export const ErrorMessage: React.FC = ({ message }) => { - const icon = message ? : null; + const icon = message ? : null; return (
diff --git a/src/components/structures/auth/ForgotPassword.tsx b/src/components/structures/auth/ForgotPassword.tsx index 006ec424bc..0e5cfb0f38 100644 --- a/src/components/structures/auth/ForgotPassword.tsx +++ b/src/components/structures/auth/ForgotPassword.tsx @@ -11,6 +11,7 @@ Please see LICENSE files in the repository root for full details. import React, { ReactNode } from "react"; import { logger } from "matrix-js-sdk/src/logger"; import { sleep } from "matrix-js-sdk/src/utils"; +import { LockSolidIcon, CheckIcon } from "@vector-im/compound-design-tokens/assets/web/icons"; import { _t, _td } from "../../../languageHandler"; import Modal from "../../../Modal"; @@ -23,8 +24,6 @@ import AuthBody from "../../views/auth/AuthBody"; import PassphraseConfirmField from "../../views/auth/PassphraseConfirmField"; import StyledCheckbox from "../../views/elements/StyledCheckbox"; import { ValidatedServerConfig } from "../../../utils/ValidatedServerConfig"; -import { Icon as CheckboxIcon } from "../../../../res/img/compound/checkbox-32px.svg"; -import { Icon as LockIcon } from "../../../../res/img/compound/padlock-32px.svg"; import QuestionDialog from "../../views/dialogs/QuestionDialog"; import { EnterEmail } from "./forgot-password/EnterEmail"; import { CheckEmail } from "./forgot-password/CheckEmail"; @@ -369,7 +368,7 @@ export default class ForgotPassword extends React.Component { return ( <> - +

{_t("auth|reset_password_title")}

@@ -417,7 +416,7 @@ export default class ForgotPassword extends React.Component { public renderDone(): JSX.Element { return ( <> - +

{_t("auth|reset_password|reset_successful")}

{this.state.logoutDevices ?

{_t("auth|reset_password|devices_logout_success")}

: null} { let closeButton; if (this.props.onRemove) { closeButton = ( - - {_t("action|remove")} + + ); } diff --git a/src/components/views/elements/AppPermission.tsx b/src/components/views/elements/AppPermission.tsx index b5b4feee42..846cc2625a 100644 --- a/src/components/views/elements/AppPermission.tsx +++ b/src/components/views/elements/AppPermission.tsx @@ -11,6 +11,7 @@ Please see LICENSE files in the repository root for full details. import React from "react"; import { RoomMember } from "matrix-js-sdk/src/matrix"; import { Tooltip } from "@vector-im/compound-web"; +import { HelpIcon } from "@vector-im/compound-design-tokens/assets/web/icons"; import { _t } from "../../../languageHandler"; import SdkConfig from "../../../SdkConfig"; @@ -21,7 +22,6 @@ import BaseAvatar from "../avatars/BaseAvatar"; import Heading from "../typography/Heading"; import AccessibleButton from "./AccessibleButton"; import { parseUrl } from "../../../utils/UrlUtils"; -import { Icon as HelpIcon } from "../../../../res/img/feather-customised/help-circle.svg"; interface IProps { url: string; diff --git a/src/components/views/messages/DecryptionFailureBody.tsx b/src/components/views/messages/DecryptionFailureBody.tsx index 9cdc2eac7b..81894fa51f 100644 --- a/src/components/views/messages/DecryptionFailureBody.tsx +++ b/src/components/views/messages/DecryptionFailureBody.tsx @@ -10,11 +10,11 @@ import classNames from "classnames"; import React, { forwardRef, ForwardRefExoticComponent, useContext } from "react"; import { MatrixEvent } from "matrix-js-sdk/src/matrix"; import { DecryptionFailureCode } from "matrix-js-sdk/src/crypto-api"; +import { WarningIcon } from "@vector-im/compound-design-tokens/assets/web/icons"; import { _t } from "../../../languageHandler"; import { IBodyProps } from "./IBodyProps"; import { LocalDeviceVerificationStateContext } from "../../../contexts/LocalDeviceVerificationStateContext"; -import { Icon as WarningBadgeIcon } from "../../../../res/img/compound/error-16px.svg"; function getErrorMessage(mxEvent: MatrixEvent, isVerified: boolean | undefined): string | React.JSX.Element { switch (mxEvent.decryptionFailureReason) { @@ -41,7 +41,7 @@ function getErrorMessage(mxEvent: MatrixEvent, isVerified: boolean | undefined): case DecryptionFailureCode.SENDER_IDENTITY_PREVIOUSLY_VERIFIED: return ( - + {_t("timeline|decryption_failure|sender_identity_previously_verified")} ); diff --git a/src/components/views/rooms/EntityTile.tsx b/src/components/views/rooms/EntityTile.tsx index 2a9af902dd..946a5cd46b 100644 --- a/src/components/views/rooms/EntityTile.tsx +++ b/src/components/views/rooms/EntityTile.tsx @@ -66,7 +66,6 @@ interface IProps { presenceLastActiveAgo: number; presenceLastTs: number; presenceCurrentlyActive?: boolean; - showInviteButton: boolean; onClick(): void; showPresence: boolean; subtextLabel?: string; @@ -135,20 +134,6 @@ export default class EntityTile extends React.PureComponent {
); - let inviteButton; - if (this.props.showInviteButton) { - inviteButton = ( -
- {_t("action|invite")} -
- ); - } - let powerLabel; const powerStatus = this.props.powerStatus; if (powerStatus) { @@ -178,7 +163,6 @@ export default class EntityTile extends React.PureComponent { {nameAndPresence} {powerLabel} - {inviteButton} ); diff --git a/src/voice-broadcast/components/atoms/VoiceBroadcastError.tsx b/src/voice-broadcast/components/atoms/VoiceBroadcastError.tsx index acca95b07c..d326853f4e 100644 --- a/src/voice-broadcast/components/atoms/VoiceBroadcastError.tsx +++ b/src/voice-broadcast/components/atoms/VoiceBroadcastError.tsx @@ -7,8 +7,7 @@ Please see LICENSE files in the repository root for full details. */ import React from "react"; - -import { Icon as WarningIcon } from "../../../../res/img/compound/error-16px.svg"; +import { WarningIcon } from "@vector-im/compound-design-tokens/assets/web/icons"; interface Props { message: string; diff --git a/src/voice-broadcast/components/atoms/VoiceBroadcastRecordingConnectionError.tsx b/src/voice-broadcast/components/atoms/VoiceBroadcastRecordingConnectionError.tsx index 4c7d261102..250d71f2f3 100644 --- a/src/voice-broadcast/components/atoms/VoiceBroadcastRecordingConnectionError.tsx +++ b/src/voice-broadcast/components/atoms/VoiceBroadcastRecordingConnectionError.tsx @@ -7,8 +7,8 @@ Please see LICENSE files in the repository root for full details. */ import React from "react"; +import { WarningIcon } from "@vector-im/compound-design-tokens/assets/web/icons"; -import { Icon as WarningIcon } from "../../../../res/img/compound/error-16px.svg"; import { _t } from "../../../languageHandler"; export const VoiceBroadcastRecordingConnectionError: React.FC = () => { From da9ea515b868d818d81959e030988ed413b694a3 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Mon, 14 Oct 2024 16:51:53 +0100 Subject: [PATCH 2/3] Iterate Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- .../forgot-password-linux.png | Bin 17851 -> 18121 bytes res/css/views/auth/_AuthBody.pcss | 4 ++-- .../auth/forgot-password/EnterEmail.tsx | 4 ++-- .../__snapshots__/AppTile-test.tsx.snap | 18 +++++++++++++++--- .../DecryptionFailureBody-test.tsx.snap | 18 ++++++++++++++++-- .../VoiceBroadcastPlaybackBody-test.tsx.snap | 18 ++++++++++++++++-- 6 files changed, 51 insertions(+), 11 deletions(-) diff --git a/playwright/snapshots/forgot-password/forgot-password.spec.ts/forgot-password-linux.png b/playwright/snapshots/forgot-password/forgot-password.spec.ts/forgot-password-linux.png index 891f024bf823661d7edcc62606ada92993ae79dd..6ce8d95e59536a7e72f2cbb1235cff1124e4c11a 100644 GIT binary patch literal 18121 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 literal 17851 zcmeIacTiK``z{)Lr6^bc0TGoBO7AElC{?M_mEJpqj(z~?MFo*A(g^|SB?Oczy%Smp zy@e$703qQlKi|1$?#!7x=bv-WoZrmJFvGy!JA3W5-u0H}dEOoIN?nQSGUH_k1VZ)l zg@Psoa%vX>IsNA1Y49JWe}YHBuT$=tO7f7BzB_9W$X&=wg{RuyX*jf}5&hvp$5ubL zZIszyOgMbp49YW(hOhYSkxcw7YckMiPcJAmO*w*(^B>_2LR{U{6#Lk@iF0y9U)f{x zd7+(%i2$jdK77H5T@?i4e|-J==X>|Eo#nib7k$1(x?F&CrillIf!`AizRWLc&%AfI ze*McuC?x(>$%Ydc2=*Eta+j@{8FF6%91Qt;gm#V^a{b=)sVDLwQjizn;Mz<7HBO3; za4qtoyCz{fHdK3X_L-h=phf2V*z>E#S0IZnijwXE+K*1Y%LZCm<$Z+RgW`?O_aq{bM(=5k2WsFTpi@=~Be`qH_@0%jao`$ydgvk*o!(Qsaq? z(}*w0wqvGO7zZkXA5O5(DE1oG%XY&c@8iOMx5$W!I!#RCh-c&z^e-SZgGoo$bB72w z5k;N}c56N(y6Z>0uzeZ`E4#UoyN0T&L4#el+@TY=^-bfT{&cCN{n2mXHJ>VOmITmU zJDl@7|2{6|lk6)Ig~l%%ka(5_^h!q6p?dk5_tc8y>sq=?ekDfSIEx_iGG8Y(WHOpe zrSkxDCYY6{BKZ%|s7@P+sAQWs^(4&U;P69hYtA_yQA>VIqJ_Z1T2T*oCq-1SD;{_5 zeVoSrakZ+vyxGI;bc+iR8Ote}FiT;~OE1WPsTYMihw}H1Pd-}gXi&HhS?(NZC#wnl zJ^H6$<3xrS64HuEa#R)g_dg*UG*C7Le}DOuf3I0y40k~-`h|Nn67eI$O;rykTADHO z8<6k$Y1i?}jr}Oupc)>Xv2L~GhZCpnK686jYu|@?mMM)gDY)-9f>_a%6`oN)|pGKuc|e&f^=YU^mQNp3Sh zyCMI@cF-Rdt-L-LA}?uT#nck|3?fko+{m?}vMT7H@!O4WuNPz)97Dd|4FjhzF*Eap z)cTM$v*bf7P48Q)Ggnkp^y1IYH$87m!YBnTQ&wLWz>!hg0*I-9uHGJKD$UK!Z3^Oe zFtJC>l$<{)?7L^5e7ml(zdcA(94_Wwx4jfSechrI{JlMKpiz#v@xC&e8IPN)BEO+5 zM#RO52?=%MbuE4=p=Q(K*b+N~a5jum(|cI~TRfbc-bc~;V$NvYLhVuiqQI@TgP{zT zLY2I4R8&3%`nQ>G)ws6gsTo$EJA1ahwRL=QQrKzarzytdfy!6aigqN4n%A)L-u=bF zZ-eYwL04UN$G2EyNSE2RSNem<>*utzw0eueXwLX!#cs+MXcz5RYuN0wGBYE6dyn8# z)fX;Y;CT3OVq&t|X0RAqihmwS|FRS{d2*6lXLNGj+V{@sGr?AUDeeo)d~{!?6M1xw z9F93=W-NbXXIu9tH@Tzm9dVh9-ASc^$okA6(Gu-K&B+^~A<_ob{!4@A9nYSzrY5IM zPELpx5Tsn5G&P4_!48|EcO~Y1sl9#u)ZJg~G03nfXlsvb-+=A2itldzZuwJCaD2Fv z#I-P*TVaZ*hU;)AdUal9re;nb9gLctjen_?hpzXW8X77$3*BxBqbXe0(n0*pP*Uz! zN7jr-(B;>A5gvrNc({oB%>T4%d2B9+uJnP?{?LV|U{NI_yw0fKC-ZG8^5M2x504H# zdj@`w1_%={L67|U8iw=xKZb@)O-$^sp(~s-P1dN^I(RrfBHBM?cTk9X(9X`zu8ph~ zrM@(o8h4Tv4GmO=xVbw~5lFs(sdd$=So|FvM#Ca)gtWq?O$e={cGO-6b`Duyxy3hH z)*@MDe}m6paTNCR&!0a+)_tRJL&FL?4CPFhLd^Q8u=8Miyi&js)$vY0Da8y*KqLGJ zGwUMuNxUYn8jbX2q&{a5Mc;fHbQSksTs>)|sPDWZ&9N)>gP{aq+shVY5uVuU@<-Cr z{ySeCIW*EK=EPXDw&KLlj@ZoGk6dh2Rig!&_*zrL!&Aka9j9w87urQ)si|4VF~pYad8y}TsZ00E4j=zjYg-4*@GeZ%r6#d<*W1L&-f8HTwH!?xJE9{&rcUwM#+a> z_NhhKTGzDKV92%Joq}u%nKLpR#|P?>aeZi_ zzo*9mTa6>)$y_0vCJp0R!G2e6@D})mdt}yOhi6rzgL88&6S))pv12})vvVI~QWHP* zgZX!GC~h)U5)(s#t+O#n4%74=_(j3^lM}BKN9{&*wwpWhl@}DL%+1X7O7%&{hgaAX zWH9wGUCNHA3R)n*WO)GSY`C-VhqkP%}&33;FgqK)Hh&7ef2t=~K^j(UHm^a=lKK-PnL^FL9s00@@#| z+LWq!N6p!})R!vdV_4V~whbKam@Ju+n(B-x!}g^kx`ILk(R}P9ito%^Qfq& z%Vu*`2c7%|#(8iEHEcA~QG^yCD(d}SR~b0=Vjqc$stcXY44~+IjQw|h$IF*^63rH5 z$wvC+ZljF2I|FyVV;-ujm)&>N5SGQr_uC^CZE?Hc#Yucz7%)o14u>!ryUS zwn&ks>T4CZiSutczb7&bH>?^_6)P~+NcJWlmA1UDP~5Xrxyd5^)0#4^p8_k(rBJYj zaNV%5P|JoWhWH0(GR$7=vC7zEe{{7b^5}`QF^V~P&yQzOVfBbdBo8UNFm}2lA{Oq$ z3@n9;RrF1=Et(I%{yrk;6-)$9SQ5kmVwC4p0`UFD+d_6URJVRFTamc!?| z;M92=7IBwX$*aTpNy{uoT3W+d&n{qPDp_OF+;}Wflx+iQbA0wV4@>%&gJwwBNh1U` z#rCH6)_m?VW2XF}`vG#Y##zd9@+w;^<;(?SgR;G;3t=EDJ#U;$3KIFQJlZvxss~%n zRy}(m%zu{S;7C}UZsDz?BRskK=g$GvTfA?c2stKqXeJN%bN&dAi9+}+EGNQHXHK7H zk-3cY-Al33(Hv@0wyNW0*rfk!DO9T%BJggvw(X7dlgCUCx%TJfy&CL<`=vY|t0)pft4H<`q8v|0CTF3(+r!Zfbk7boBG;$fC z2yg6R#kv%-Z zN_*{^bCp=o&O>=bbZn$%8ohPwTsvDR*uBYOK_9j=jY>^q{QZl(YY~aO`a?FDl4B5H z`JQE?3bn%2(0bUOVi0ad2Q{*@yFTGUg9R9p>?(5_Ex5i z{)MC2@(hxiM;^*2W_#;y(dz1IgBj5xtZf%e9;I@4B))Qx*kp|->rj3n_5}==IYV>xj)GEAIa8or%UtB%y z{I3tsz(Wu4j_@xmuNO7k5iqLNev0L(UFkD@^$<98;S+{$-@bu0<|aJrWffzKV+ruq zqLQSZtad=>srDobwbVEp-IYmbmA&HkH;?VFxbH->6cW9_Gm6-0*E|x7i;0qQ2ag$EBOe}lgNHMT zv_4W&WlvgGpH8YMJRzb`%eujjs9tfr+-sN!8?zZKLa&$}o91C1hwBr!la@2&_F1Go z-ducVuEpIJ+Asz`IXZCt-Q1P}Rd;aMD4uXnT&oVMd3Evi4+U3CGxSkRN@#_3f49e# z6Wb!Tj;E>1G}gHOOSkv}PaF>zek_Dr+x*(gSy?qkdLebwkMJ3mFkM(~fZf{0MviK0 zYrBl_!Jb+T|*C2~w2e8z{U_kW+yk(E-bio>Tj~ zfrby=F{@k#l{PaCK8a!xK}jrC_9!=xpL$Nxn>*NAv$i5BkZsoal{z66ag)_t`sE5w zp3LU;8fIr_XUYX-)nVA_is4aXg~r(NEjkYMG|jIbHW<;ibFxk9%t?HPKExShzDA~~ z{h(-DdR<$jJ`Llzsa9mWClrDNf#gKdZup){Y^_<(l#cdU6XxCj zac-onhp`5YH5!-ozbh4D?>Wj4rE;5Nf{!L9$McBdR;+ zM)*?4NC(GQjdx_4lGtpY*8Im)SBaKdjev?xZaJAa8AQ3}#my!hCEJpM-aEz%g= z+|hWXr>FSI@6+Hh^>ih~#|e{VOC79@aLwHE#Kgq9y5!*CfZ>NRsA2=zpcw~T&8vsP z&SMJhsc(}7O$xslA2P(CrD`aIlSWR%F~pM($Dk(J+jL=-v1_Fu5n5-}BIetm4pSh1 z-#LA58{i?jMQ`41{WwgQ^gM{aX?NS>jxeKWag%$;*Y+5un><#I@7~QV>G&R1b|#DK z2MRDN8J(O$Wdbv+bIYacpbiiXG&*#%jJnBZW@e^YY4ho5&p%%yz0z~X7w6GEFgGx$ z&s^`ZpDN||F-gx>NT}l8^GIR4k+(bTRm$bo|9uKw+}uW{v)nNb|Cd&<*QxzcZXFy`!kxP8OW zFKN71yf(_3*SU6nv%)K9(g1nuKS7HJW80X{4O3ck%P?6& z5LexCM^v~f5KlLE2+Mf=v0<1$h7!yodv&0A^5;9Pg@=4b=mu_`Ldue!snYZ3xpgNX zHyA56?(c0uSeFKZO@zvyvF^`|V-YHmf56IdtDmvTpF<-#BOxKDxcqN*67l+>W@Zy% zvZ^E7qb?-mtYx(xfwIJNR4{61S*?TJr{hr5QGYN$zu-yJ9eU-Kl-K(F`ts6}@w9SrF7I!-vk&5s-c@0+t+nLD@ zWp7Uy$}{F*3xTETtv}>5Eh~z3erAmt+G7;fZ+iCyzihj2Zcq4ZCbt%&=o_4wvVTJY zZP?b>Wk+oRA4q0*yzLoo&MtqdOqS?wSPI=D1XSU9C^RUJxdl zwCgT)0R=#;MjyJYzcuWnnfZ!Ql>sg@km7g{{#ewj4?sJrW$sK;)_zJg4|@&ByF1P? zsnwNb?kta73S{@H9Y*`w`|7@!qD%wR$Lk%Hn50$;hpjkadHvs(RyRQ5EDh4!H6g3q zRReA9gfCGmpo$-{^Hg;xj!I1m{z4kHM~&L;{ih->F+l{b4OxP(0HI@YT%x13ox9?3 zS=l7XhkR58^GjysIKECx>x~`5?K6}8_VA^}DKge3qjps^ERuJwZ?DE7Nx%?gohhfQ z4B#92z=}Xs(G*Bl{9*+M_*$-mpzU^LWFm}N+=cTIr%hYe=*$v#e!*jq@cFkD@#vO} zjo@b&19!(=fti>uZ-AM>1Bgvr++r`qv#%s0jGA>&JAdM33i1_fl#-69ahlrNPK2F0 z^#M$i1G?Hg@-(pK8{CIE1xMp$boGb{xF3N>uT&;rUllO}Hr5?!kMZ`t!@=wUdNnZg zj3j6%NC3{AJLf!I+16II+h^?OA*@l62~M>kC=qRPBn}u;$T{C$lqFg@Iye{sYXjE5 zjYlI!obTaoa;ps48>To8Y{@ITubdA^&k@gCtKy?`zRVoZIf>7~%TrryxDW|LE$w|i z3weB98}kpk0qj7cxxI~=>_ak1$u#Y5fF7zv(UT46+e*L=Z5g2QBN9@!j;{JmN zxtu#KadIaxyG(<}j~~|~80hKKtdNrxlU!?SI)N=8)l!hmAg}hJ$wxKp?q~Z6Ytl4& zi49*N(i<8#cz3q zsyx)R{HGLGeY{Ze?L(SSVCk3G41}GFdaCUv=2M-6YTfpV1pSuQMG}=q3*H4-dacGk zeHM0AGtb!A*rX{C>C-)iAX2VgqP}$TqN@AJ&6_s?{3#y}Fj77~K7byrYZ2a40<3$| zj4QsDYE%{7=t^=P|84?O5#Rj++u`=8n*!uzY-#KriLswg0|ZKkV7jHuAQb^1ER)z6 zkszX{m&Bh=HmI~ieQ$IgEz)5WahRQbEATg`ij0o_8w&DrBqbz7`T0R@p6u!7@#uPOOYvRb|VF%&=~@k-NpvScCPtBR#u#&qhqzx6n+K82AuNK zr%%Bu$m+msA`cI=^~*i#mgR^2lD~apk?>s|%2ffIP_NWj3pToS=@O_QxQZwNzkdW3 z;YZlS#TB4pQAwO7)@MR!!Pk8H^r^AYQ$&SPw4gL-r;_;Z>IC{ChQ6A?4noedDPRK6 z2pBiIE$=>7QBjd0eKVQT=GIx?25ZyRabxZA09JwYEe|ECq!bq2$mKzN(2e+#m6W^1 zAT_P^VoP3i$FuMNPr3wVj!&<|p&~Cvs?uJ{V*Jne_&5>&s^7OGNV3{8$_k)?bs)9- z=Umi7^%Oy`o&wj*=rL$HT>-bAn& zfM&yJSlzZ;3$NS~P)m_^93Oa^tw^n>3pcE2E(%Zdngi*Qz3=DcnVu@mhY}JJo~JZu zXq*XxQ`H0qOi6F(m83jXirU4jo9pxl?TAWZ<}y|mOrd#x-`3U^vs87dF+w+~FED^a zqio!RM#KH<%2SH+)st`EVj^ZZS%nNmS$KAtU?&>rNrNJcN62waWqTeP8X`dXHRQ-< zZQE@}y9OuhxqNi&4&kT>ievX;>b(md92}4KFZ?w!I{6JW^hq)rxkAIH(02KTus!hO zAA-XYCnnsN#hfSh54OI@hmYEi6>1kb8j40UN=$cm3-wy`8zG%BiY1`DY6rENBDLWr zX*&4A39Wpw0aCF7zAg7*nO86rm^Y6uXOqW7WRigCp*Gyi(o$y((G#8Q{`vD4`;me? z>zx^-9~3+0$f4AcA%o~od+a$m5+P*OrwbdUj->|cLKSd4-Z}XCFkfAlqm^UzK(1$S z@G-z9IyBNocqIak98w;T`MoZ;{6AU%vZNEbIsjYEtW%`z<>o;zFD@Yo%0I$!XjF>e zEq)Vj!!g5L%^SRLUR}IKA#xZL%5mM0KR#R`!%!sxhV?F+-%n97jl?PM70$}(kf54H z`-KK=gTLA6&?8UR+9DQCqJIGn<}WG*^Wjc(JN?a9&Nf!@p+WAH80Hu=|Gdc*5x9__ z8Ki<}Z8H2eSdFv}8D4Kx{Mw|x>tN{N;bApHFG(^B!7tubtliBH&^J2#Gt%2a0>IqK z`bnd!*Pe&hUW3oh*Yf?1x*aarSMXPzN_8(L3tU0;UMWHQsU57LfI~N)Zb-n+a+TEC z=V=-7pk6zJs-bss4}^saGz_w?LnB_y$BDMRfhjc(_U0?oS>`JsvVXI>VBMQxO;{DR z*?eT_1*ktS>XMd^ak^G}b<2Uv8xj{dh&nKotS`MU`6wm>c_d;#sHiVuzU)A7O9W}f zb$WXL`PM>%Ds0gHpBJZ`+M0x31>BU!{wBYk53Zgn zCA5n}1*B$|FZtwJd1Kvo|g@-AFoLEt3I6|JDetDy;Ae z!ukqU%sI_S8riJ_9H@C7B6+6D?cac&CTPjyIMv7w0y`h|GkDiiZ zLlIEIAry~ap2IB}v-S2P5;OwG$mv>udjJX9Ok+U4AWWl{hxM1J!^rf+Xhk%%?OltK zebCt^heKtM8H1^U9gG|;p(22bsNZ=YA>o5>zyuVbyuh6A5WMiyp}QvGXUsVK&N;VtAbp;F>Ds^#3v3)FHW!@mI(0-{kf#h~Ok##T=nUbCcem*JL@4ma} z!A1ew2y9q&EAPdid~cKxl0C7WN>WiAnQq@biF%pRl4vz0c$7DgFQ7k^9(QkAhZUuB z-vWM(y(8sYifX1L7lP@ZJ8I>q2n+N}4bh`0wXXMvOb8~lfw(Tr-YS~puJ`^2m>+SyC zX?!TLp;u}$F^S+DuFrHTA=B@?{F1LzY=i^&DImx|>buXcC$VzkA_U2K8|?z}yctlf zTXhOFsXNS+!v)iqhgXOF)_r`t{dPAQ zH!|nBmO;`EY`@BoG~C|=luNRbiuKDT@RT^KdM~&E6hEy~k_J#&7CF~#66?cV)<=t9 zTr;^evZ0=yuQPmQEmp(ZRK6np50!li{C&GqMIHSQ{=8;u{lwk@LO$l_Q!=>q6*g*C ziAjJIn}12jr3f8F{YulAIa*S5@+sfr+gr7oG==L&#Lcw{mVXsHu-GkS8sCE$SPmsU>auU?IT; z_OJ^b>caMu_vzvy#l*xkDwZIdWsfv#GbIBQg#wOSI|WU0b+~nWHL`<?NS(eQGFikx&nho+JSbKq*C3)H7x659Ut2 z=e5e=c&wH#*)lZL4D(o9=+NNRulJvsPL{vOl&T337$#9C{CHM?i_4#pLZO6aF{hdJ zp{f-Px<(@0aAgmRvPU_&K%sht+G~8b0C>Kb7H%$T+n z;I%(eG4G;@blXe4D|2&!fNXxClEi29NWfDH96V36e)9L=n`Kv`iN?T7ss1APBZMBTPNwtkN( zae@iNgK-IGOrsX!!I5;k30#+hgQGv4_}9+?M**A*pkBXo4K!Fz;bo3)`?f-6TNsWX z`+?16J6tjxOse6l>@lmGZay5M8t;xi1X_(6q zLMP-~m)KE_z6{CqnFSf>-boZ%USh3r4{01Jlf!>_?5J7#K%g1(K*zoO6)cqY-rjYP z$+5}@r1h|yeO~dX!Pjg&fAQvr=ZEPXzc*61L?*n~&@@slYHo#r__sH1np_eCFAi!0W6x6BC>jo~&Y9e-`ApVL}T=*Y|GS(~t>&4I9M}E((y0!}piDygt`k zWajqkWkzZ1-XPt7)ce4$s=l@M7dFe)uF7|_>z4HyGmw44Iks@i(mJqF%cd(4(Q4FD z$_C!^@cqgUO4PrUc=_2R?(@ED2`!LrVJ(rkWn1YRi}Ep{{%K+ayqDxFqi~v8TH&*(Z^8}vPUE%S6e33WVR+XZ;fUyc z%j9=^m-kE4@fhAO$B`rHyW_$&T`2Srx3d#72~2Df_49f@e_4`?0<)OPE&E~Nq+{4p zdgQ+GzS&rom`{%zd1hD=%Ky6IEq(|SLSNn^GEw>`QOUJyH%DE6=j7)5lkjsg@SrKu z5ms0CJp6gC`i`%{n61Rl+HuC1SEzfdOcEp>C*MpLRvK96Zt*gB%xtq;5GB8$LOkm$ZaQ8ZTZP$1msB9bUjQK(2D+``4@{5oE<4ALc*y z*?AKX!TyrLOg95dNd7YvoE}3SW-egVGYL=;b|2-a)*GsZ! zeJ{dP)8v0+`K|R-P1s5B`|oHHbyGyR%g+kjU~WL+^|nx2XZGxB{Inl#IsM?kTkKXo zfBGbS4L>6-{Wf-_&OJ}{h4YE6Q||FEa^tg(*mP;)!+Cgcx*EA&L^w64M%i}#dm~!Z z3GHb1*{>P35K610ktX4>q5b9{^@naK(->^Y5K*sr@bt;RSUTw+c@|LBCwM_|Gj#zJ ze;-fY3-49`)XkNItd$_cj`lajL>}uSY&#b9o2I4`7)8HZmm478b(bu`!~!IoYH7{p z%BwD2y2O5g*!iWyZFmf=qUUrl|K%M4?c-~RJ6@QL7+&%7T6Lh{Iz_v^(e7vNXmV#&6!bg~@q`h7Jx6uke@X$Ouv10<%yfbgXxaIL!{N@^t6AM#)(#*p9lU`!<*M^3fN_; z{2qgYQ4aQmU5CLOO06n=fePHMC zg<`e)5S6se^){dM-p%>Zu+YihzkffkMtKn3g!FvP!=?aEWF^JLGK^t52h}gWZY^^0 z_ir9c_e&KnW@0$xmzB-(+AHcZy_6lc-<{j_AmoL!1jIsJ{SvWMmigUhQfYfZCClhL zo!WT8cXoE%A%9ZE;souToW7=|r6nY!0ZtR(3FroQ!n-G%u%Da1W|fo`n`+vHYkUv6 zdHMNg+B%0W@Er^m;COGq>NQR@j`*9lA! z?w;yy8Eq>wN*?Muxv<7};eAgh*PN4a&WmN)S8B@2DdOgVX7ZYznUT3NM)soxlGeYs zX{Nihv5m~0+f9^<17+NyWi1yL`-!Dt@I}qS5LzU{({84glI}-jJ$u#}gKV;WhWV<- zwEBh`k{l1LeKh!sxgijH(4gt zCF>V{ZUci2I-Kk!mMH%o8OhPl_O%yt)KFG;b9M8-akJ5mtg8V{$}pBZE9WcixZmtV z!8J&uXOK~{uFL-5>c9D7_uieekQZ$EA*3V>IZtLPA7L6XPw)}Xyyu)D4Hn$6DiF(h zA$ELfQrKSGxoxtSwOpq=j|%W$z<951i4KiUWSP>OLc6ipjF?R???vkSpu(?tM8d!rxk2-Rob$GtH6QLk_+SkAF|cFyE?-^P|bi^2s+ z(4~O%H-j@h168-Br(u%cGJS8GuNnYJxa)EMZB`}sXDG8x=YsYJ1@QLsjj6p!fWo`T z))RJKq2IMDz5Ayei{+*e)Lm=zhe_M7bUPdFTaG{J1OZa48lc#1-D`yr;q$7hU`(%ygGw-$eM#9u3Ex4A7ceG1b4TkJ3A_&@sn{~y{o;$M1+J=wqnxuEbeL`nlI3+2eu+uOm& z$gAceM6jp1xw#8`ihd$e?XkLiAjAHK#JvV3nnU4%nnG)_zPnzD0Ua}QIv*7T($Wd! z5j7?0O0joz3*P>AuzeyL;^*&w41|3EMP|OXHTFm6%=^ax=z7~z@CoThd?X|!(`^T(myqm0SF;r+Gv(m54mey@4YodxN?&zpWoc*>!mAKU;sx1sK{00 zYoNj8aC=G0=h$WN$N464^JpO=C~-e+K<I8 z(((@IrbIn%9Mo1i4*TvG+X6_*xXvynIa#0NjB+(Scd^$QkKSA?1564~834t%R-VfR4oe}T--{vbL;b-)VW#e@tXQ$+Y{voGvf`m>CR}$6rC(K8jTF`=^~w| zVUD;NgnPim=g_gS=OXq1o$`5mlJWimG?rz?6lO)m?C2eIgD*8x(sl7Sd5USQlwYT4 zWPmN0KTYaz1~_y%lIyW+LL8E=oQd< z0@*^PGsbIp+41Sq-vFRJS<7#-+ZfM6S8~x^xykv{yR#gyjr$uD0b|jH=Wjo{D|9uG z$D)eSlSMAjY=C>y^|6>3)5#i#Og*$WNg$K<9zf0dSxK^_HkRMqzY6k>hl`lTsLzScfWDGFjAz@*LhPRMzYesM0yaAX| zm&VgXt_9Dn`6UjGjEiis%o1;{t+5*h1``o^b~xK7Kn=D&olJKg-aLz%j?y=z!w-P$ zM{X|P6r8V{t+;oz2Z%%)Op&EKTWfq4dk8IPlAxC_Hmy3E-dTEq-MJ<*i_}q2Qu-@ZJ9MkkH23zdUDmJ#d`s>)z)k>7 zj~^*Z4+}#ek;saQFUq-HKc4=x2#6!5`pdy#et@3RD=`uB;5!J{E`9|t08^wF`Ol!a zQY?#Mtxf0J7bUP#D~VpQ*@3%%icw4ZuHb!UJ$ zxyMA>$6?AnNyl{+!gVyOx_Qw_S+GY3B1GT4b;kP3{zhMUO@7+1=vrHISn9%cVcJE1 z{%~6Eua9E66S=n?7x6NFfC=@ZG(Y$ABemwV67l;0gs5{{vKuRo5S*&C{j#fURUb)T z55F3r;{1cYJA42*wRCx@2)&b-c~`@~Qv_%5f(99IViUTge7SYcry9#K~w^1FZf z3jH4f0W~;KHOnpt$oE0>_E11P5io@+)+g5e88obqt!9qTbxo=y@k4j9zWdXMV{n6g z?3C2Kd-Gp3&hLS2tf(kaX>%?q*X%aALD1HrdGP=V-fKad?8S6`z;Of+%05KCf+fR&L z`z%Dl=p-;8CVr#c@1vcCg+*9wI$;_x9)Ep&k#<@0$30lg&IDqMC7!&yHZ1BW1t|2M z{{)WJ*`Ma5hd}YYpl#id$;zo;zPP;Dw^sgZ0x#mznHJVjgi0wOfdnfKoyRX|U zbtOjYb3rUhC#&pP&8A$mZ8Z6|00yFt`-eEAZ{{*b<2grNxy{m~*%Qp4dk z+!P@QTkmS6u4tgr?;D$G8yecCAX6vMw13{aD2ocq1HV1QjApnJ}$A60@`oq%N~LC=ZN5UA57S!KM85HnOvq9RU1&7-|A&BS%n zz&%eOXR#WMWkxWHIL$52uNgLNfhHXxkHZS}(CMG`;dZv+swdE@3*?)3p+n`)_#VVjEO?z_Lb&w0NR zXs=TIF_k`8j?6%oEzxp7KLh9Vrp~VS&tN7eY#%50$f0%h`|KH$pgF?_yO9r;PW(oKsl}tIKho|6UAiwKv_jh`p!O1DsjRSD`r=! zBT94ivL7_e1({%E7YM&Xv@QD-uQKBTQjX6pI@R)FDUMh%i z9lnXXd7AaleZ-0Thx?$}poxM>T99M*16&)sQmo@lxhF9LDIbnm>3{ipdl^0@AD*X{ z%2}b7D#}7!TRE9b3=Pc=4yOHK5pn(N*RMd0jxqHca}@j@gkcb}Minn%wcvK4+e=KM z1$rQ$#FCBbJ)U12th3j^g$B(8eOIlmum5Z4J73{Y0-53Z9iUAr-~zp7#{Wt=&RA9h zRW!j-=(`-S`30a8;!Z3A&3{zuDEn7UGrvxe?Z!%=2Y<>&9(?)y83+_WAF-uq68BQo z(?sRO!O04jFI$_iF^V z07QS2&%~g_Xu?X332KA#0<=sSkWMk#;cZ^%o?s{GH$T)a#}*Hko_q)SrL_O;?>*du z$#OxBBM;DMG-x_qCMf_#gQ$~=rw>Wg4N$^>QeYHu8~+Eh!XkYTMr$^@E|PLux#>C` zornszHm5+yAJe-*u&=#_RStNqD&-e1!e8Q>)KhgqGm~avwd2GiyG0iP0S%mmfbpaj zTo<$knkJ)b2=A{+T|RXEI~0Uo9G8~0$2MWI#L+%W6E|IESl9Zge)0PUvSRcdDYL~l zK~1rpKvh7#P?3$a?M@Zz2TJDP;AcS0vOYiWcGRQKrXZ48lybVHgdcPPtWM`DjTR*~ z9r!oUnjP0ZUg=9`ef0K4M=b8jP2O7bl@dVoVgh&MavQRP$>|8<(Js@Q_HKL7%Lr68 zDItLZY!Jvf(JHZ|r^^AK<+}E2kY0 zZ`AGFTJA|d0Ud20&XCm71z&5uolJ-T&1to+J7Zls_6bw>VA_QZJ`0m}qyAp_Nu>iLT7;dnYzvwzBftPoS@heG#?fa*g&{9mp1HXn$eq3#?N2;2A4wYB}P?8AQ=&tk`i$q6Mp>I6*Ojr(Ee3j+sL^I4T!zn%4|-SD*p{QoxhQhmiAj( z!s5pKG>Dv_1yRVg z_eCY5(9^--T@66oe+u$P8K)Fz_ZjU7fmp = ({ return ( <> - +

{_t("auth|enter_email_heading")}

{_t("auth|enter_email_explainer", { homeserver }, { b: (t) => {t} })} diff --git a/test/components/views/elements/__snapshots__/AppTile-test.tsx.snap b/test/components/views/elements/__snapshots__/AppTile-test.tsx.snap index 05094a2ca1..6931cc7e91 100644 --- a/test/components/views/elements/__snapshots__/AppTile-test.tsx.snap +++ b/test/components/views/elements/__snapshots__/AppTile-test.tsx.snap @@ -232,7 +232,7 @@ exports[`AppTile for a pinned widget should render permission request 1`] = ` class="mx_AppTileMenuBar_widgets" >

-
+ fill="currentColor" + height="1em" + viewBox="0 0 24 24" + width="1em" + xmlns="http://www.w3.org/2000/svg" + > + + +
with example.com. diff --git a/test/components/views/messages/__snapshots__/DecryptionFailureBody-test.tsx.snap b/test/components/views/messages/__snapshots__/DecryptionFailureBody-test.tsx.snap index b2ba5b2a2e..67630f2031 100644 --- a/test/components/views/messages/__snapshots__/DecryptionFailureBody-test.tsx.snap +++ b/test/components/views/messages/__snapshots__/DecryptionFailureBody-test.tsx.snap @@ -26,9 +26,23 @@ exports[`DecryptionFailureBody should handle messages from users who change iden class="mx_DecryptionFailureBody mx_EventTile_content mx_DecryptionFailureVerifiedIdentityChanged" > -
+ fill="currentColor" + height="1em" + viewBox="0 0 24 24" + width="1em" + xmlns="http://www.w3.org/2000/svg" + > + + + Verified identity has changed
diff --git a/test/voice-broadcast/components/molecules/__snapshots__/VoiceBroadcastPlaybackBody-test.tsx.snap b/test/voice-broadcast/components/molecules/__snapshots__/VoiceBroadcastPlaybackBody-test.tsx.snap index e9e902c5d6..cb063c395c 100644 --- a/test/voice-broadcast/components/molecules/__snapshots__/VoiceBroadcastPlaybackBody-test.tsx.snap +++ b/test/voice-broadcast/components/molecules/__snapshots__/VoiceBroadcastPlaybackBody-test.tsx.snap @@ -890,9 +890,23 @@ exports[`VoiceBroadcastPlaybackBody when rendering an error broadcast should ren
-
+ fill="currentColor" + height="1em" + viewBox="0 0 24 24" + width="1em" + xmlns="http://www.w3.org/2000/svg" + > + + + Unable to play this voice broadcast
From b6e2145f5807750755a791e7add3c18af1e8d727 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Mon, 14 Oct 2024 16:59:08 +0100 Subject: [PATCH 3/3] Update snapshot Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- .../views/elements/__snapshots__/AppTile-test.tsx.snap | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/components/views/elements/__snapshots__/AppTile-test.tsx.snap b/test/components/views/elements/__snapshots__/AppTile-test.tsx.snap index 6931cc7e91..fe5e1caf8a 100644 --- a/test/components/views/elements/__snapshots__/AppTile-test.tsx.snap +++ b/test/components/views/elements/__snapshots__/AppTile-test.tsx.snap @@ -232,7 +232,7 @@ exports[`AppTile for a pinned widget should render permission request 1`] = ` class="mx_AppTileMenuBar_widgets" >