diff --git a/src/components/viewmodels/memberlist/tiles/MemberTileViewModel.tsx b/src/components/viewmodels/memberlist/tiles/MemberTileViewModel.tsx index ade40e9b97..367064e3ff 100644 --- a/src/components/viewmodels/memberlist/tiles/MemberTileViewModel.tsx +++ b/src/components/viewmodels/memberlist/tiles/MemberTileViewModel.tsx @@ -15,9 +15,9 @@ import { Action } from "../../../../dispatcher/actions"; import { asyncSome } from "../../../../utils/arrays"; import { getUserDeviceIds } from "../../../../utils/crypto/deviceInfo"; import { RoomMember } from "../../../../models/rooms/RoomMember"; -import { E2EState } from "../../../views/rooms/E2EIcon"; import { _t, _td, TranslationKey } from "../../../../languageHandler"; import UserIdentifierCustomisations from "../../../../customisations/UserIdentifier"; +import { E2EStatus } from "../../../../utils/ShieldUtils"; interface MemberTileViewModelProps { member: RoomMember; @@ -25,7 +25,7 @@ interface MemberTileViewModelProps { } export interface MemberTileViewState extends MemberTileViewModelProps { - e2eStatus?: E2EState; + e2eStatus?: E2EStatus; name: string; onClick: () => void; title?: string; @@ -43,7 +43,7 @@ const PowerLabel: Record = { }; export function useMemberTileViewModel(props: MemberTileViewModelProps): MemberTileViewState { - const [e2eStatus, setE2eStatus] = useState(); + const [e2eStatus, setE2eStatus] = useState(); useEffect(() => { const cli = MatrixClientPeg.safeGet(); @@ -53,7 +53,7 @@ export function useMemberTileViewModel(props: MemberTileViewModelProps): MemberT const isMe = userId === cli.getUserId(); const userTrust = await cli.getCrypto()?.getUserVerificationStatus(userId); if (!userTrust?.isCrossSigningVerified()) { - setE2eStatus(userTrust?.wasCrossSigningVerified() ? E2EState.Warning : E2EState.Normal); + setE2eStatus(userTrust?.wasCrossSigningVerified() ? E2EStatus.Warning : E2EStatus.Normal); return; } @@ -67,7 +67,7 @@ export function useMemberTileViewModel(props: MemberTileViewModelProps): MemberT const deviceTrust = await cli.getCrypto()?.getDeviceVerificationStatus(userId, deviceId); return !deviceTrust || (isMe ? !deviceTrust.crossSigningVerified : !deviceTrust.isVerified()); }); - setE2eStatus(anyDeviceUnverified ? E2EState.Warning : E2EState.Verified); + setE2eStatus(anyDeviceUnverified ? E2EStatus.Warning : E2EStatus.Verified); }; const onRoomStateEvents = (ev: MatrixEvent): void => { diff --git a/src/components/views/dialogs/UntrustedDeviceDialog.tsx b/src/components/views/dialogs/UntrustedDeviceDialog.tsx index 668a3f52b3..ad1b2df7dc 100644 --- a/src/components/views/dialogs/UntrustedDeviceDialog.tsx +++ b/src/components/views/dialogs/UntrustedDeviceDialog.tsx @@ -11,10 +11,11 @@ import { User } from "matrix-js-sdk/src/matrix"; import { _t } from "../../../languageHandler"; import { MatrixClientPeg } from "../../../MatrixClientPeg"; -import E2EIcon, { E2EState } from "../rooms/E2EIcon"; +import E2EIcon from "../rooms/E2EIcon"; import AccessibleButton from "../elements/AccessibleButton"; import BaseDialog from "./BaseDialog"; import { IDevice } from "../right_panel/UserInfo"; +import { E2EStatus } from "../../../utils/ShieldUtils"; interface IProps { /** @@ -54,7 +55,7 @@ const UntrustedDeviceDialog: React.FC = ({ device, user, onFinished }) = className="mx_UntrustedDeviceDialog" title={ <> - + {_t("encryption|udd|title")} } diff --git a/src/components/views/right_panel/VerificationPanel.tsx b/src/components/views/right_panel/VerificationPanel.tsx index ba419afa98..2a1d8ce3c0 100644 --- a/src/components/views/right_panel/VerificationPanel.tsx +++ b/src/components/views/right_panel/VerificationPanel.tsx @@ -23,11 +23,12 @@ import { MatrixClientPeg } from "../../../MatrixClientPeg"; import VerificationQRCode from "../elements/crypto/VerificationQRCode"; import { _t } from "../../../languageHandler"; import SdkConfig from "../../../SdkConfig"; -import E2EIcon, { E2EState } from "../rooms/E2EIcon"; +import E2EIcon from "../rooms/E2EIcon"; import Spinner from "../elements/Spinner"; import AccessibleButton from "../elements/AccessibleButton"; import VerificationShowSas from "../verification/VerificationShowSas"; import { getDeviceCryptoInfo } from "../../../utils/crypto/deviceInfo"; +import { E2EStatus } from "../../../utils/ShieldUtils"; interface IProps { layout: string; @@ -233,7 +234,7 @@ export default class VerificationPanel extends React.PureComponent

{description}

- +

{description}

- + {text ?

{text}

: null} {_t("action|got_it")} diff --git a/src/components/views/rooms/E2EIcon.tsx b/src/components/views/rooms/E2EIcon.tsx index 5366f7621c..8542ad4b4b 100644 --- a/src/components/views/rooms/E2EIcon.tsx +++ b/src/components/views/rooms/E2EIcon.tsx @@ -14,23 +14,16 @@ import { Tooltip } from "@vector-im/compound-web"; import { _t, _td, TranslationKey } from "../../../languageHandler"; import AccessibleButton from "../elements/AccessibleButton"; import { E2EStatus } from "../../../utils/ShieldUtils"; -import { XOR } from "../../../@types/common"; -export enum E2EState { - Verified = "verified", - Warning = "warning", - Normal = "normal", -} - -export const crossSigningUserTitles: { [key in E2EState]?: TranslationKey } = { - [E2EState.Warning]: _td("encryption|cross_signing_user_warning"), - [E2EState.Normal]: _td("encryption|cross_signing_user_normal"), - [E2EState.Verified]: _td("encryption|cross_signing_user_verified"), +export const crossSigningUserTitles: { [key in E2EStatus]?: TranslationKey } = { + [E2EStatus.Warning]: _td("encryption|cross_signing_user_warning"), + [E2EStatus.Normal]: _td("encryption|cross_signing_user_normal"), + [E2EStatus.Verified]: _td("encryption|cross_signing_user_verified"), }; -const crossSigningRoomTitles: { [key in E2EState]?: TranslationKey } = { - [E2EState.Warning]: _td("encryption|cross_signing_room_warning"), - [E2EState.Normal]: _td("encryption|cross_signing_room_normal"), - [E2EState.Verified]: _td("encryption|cross_signing_room_verified"), +const crossSigningRoomTitles: { [key in E2EStatus]?: TranslationKey } = { + [E2EStatus.Warning]: _td("encryption|cross_signing_room_warning"), + [E2EStatus.Normal]: _td("encryption|cross_signing_room_normal"), + [E2EStatus.Verified]: _td("encryption|cross_signing_room_verified"), }; interface Props { @@ -40,19 +33,11 @@ interface Props { hideTooltip?: boolean; tooltipPlacement?: ComponentProps["placement"]; bordered?: boolean; -} - -interface UserProps extends Props { - isUser: true; - status: E2EState | E2EStatus; -} - -interface RoomProps extends Props { - isUser?: false; status: E2EStatus; + isUser?: boolean; } -const E2EIcon: React.FC> = ({ +const E2EIcon: React.FC = ({ isUser, status, className, @@ -66,9 +51,9 @@ const E2EIcon: React.FC> = ({ { mx_E2EIcon: true, mx_E2EIcon_bordered: bordered, - mx_E2EIcon_warning: status === E2EState.Warning, - mx_E2EIcon_normal: status === E2EState.Normal, - mx_E2EIcon_verified: status === E2EState.Verified, + mx_E2EIcon_warning: status === E2EStatus.Warning, + mx_E2EIcon_normal: status === E2EStatus.Normal, + mx_E2EIcon_verified: status === E2EStatus.Verified, }, className, ); diff --git a/src/components/views/rooms/MemberList/tiles/common/E2EIconView.tsx b/src/components/views/rooms/MemberList/tiles/common/E2EIconView.tsx index 01ffb8a6b0..a1f37e5185 100644 --- a/src/components/views/rooms/MemberList/tiles/common/E2EIconView.tsx +++ b/src/components/views/rooms/MemberList/tiles/common/E2EIconView.tsx @@ -12,24 +12,21 @@ import ErrorIcon from "@vector-im/compound-design-tokens/assets/web/icons/error" import { _t } from "../../../../../../languageHandler"; import { E2EStatus } from "../../../../../../utils/ShieldUtils"; -import { E2EState, crossSigningUserTitles } from "../../../E2EIcon"; +import { crossSigningUserTitles } from "../../../E2EIcon"; -function getIconFromStatus(status: E2EState | E2EStatus): React.JSX.Element | undefined { +function getIconFromStatus(status: E2EStatus): React.JSX.Element | undefined { switch (status) { - case E2EState.Normal: case E2EStatus.Normal: return undefined; - case E2EState.Verified: case E2EStatus.Verified: return ; - case E2EState.Warning: case E2EStatus.Warning: return ; } } interface Props { - status: E2EState | E2EStatus; + status: E2EStatus; } export const E2EIconView: React.FC = ({ status }) => {