mirror of https://github.com/vector-im/riot-web
Convert E2EIcon to TS
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>pull/21833/head
parent
9ef5173312
commit
d9e8c32341
|
@ -19,7 +19,7 @@ import { User } from "matrix-js-sdk/src/models/user";
|
||||||
|
|
||||||
import { _t } from "../../../languageHandler";
|
import { _t } from "../../../languageHandler";
|
||||||
import { MatrixClientPeg } from "../../../MatrixClientPeg";
|
import { MatrixClientPeg } from "../../../MatrixClientPeg";
|
||||||
import E2EIcon from "../rooms/E2EIcon";
|
import E2EIcon, { E2E_STATE } from "../rooms/E2EIcon";
|
||||||
import AccessibleButton from "../elements/AccessibleButton";
|
import AccessibleButton from "../elements/AccessibleButton";
|
||||||
import BaseDialog from "./BaseDialog";
|
import BaseDialog from "./BaseDialog";
|
||||||
import { IDialogProps } from "./IDialogProps";
|
import { IDialogProps } from "./IDialogProps";
|
||||||
|
@ -47,7 +47,7 @@ const UntrustedDeviceDialog: React.FC<IProps> = ({ device, user, onFinished }) =
|
||||||
onFinished={onFinished}
|
onFinished={onFinished}
|
||||||
className="mx_UntrustedDeviceDialog"
|
className="mx_UntrustedDeviceDialog"
|
||||||
title={<>
|
title={<>
|
||||||
<E2EIcon status="warning" size={24} hideTooltip={true} />
|
<E2EIcon status={E2E_STATE.WARNING} size={24} hideTooltip={true} />
|
||||||
{ _t("Not Trusted") }
|
{ _t("Not Trusted") }
|
||||||
</>}
|
</>}
|
||||||
>
|
>
|
||||||
|
|
|
@ -28,7 +28,7 @@ import { SAS } from "matrix-js-sdk/src/crypto/verification/SAS";
|
||||||
import VerificationQRCode from "../elements/crypto/VerificationQRCode";
|
import VerificationQRCode from "../elements/crypto/VerificationQRCode";
|
||||||
import { _t } from "../../../languageHandler";
|
import { _t } from "../../../languageHandler";
|
||||||
import SdkConfig from "../../../SdkConfig";
|
import SdkConfig from "../../../SdkConfig";
|
||||||
import E2EIcon from "../rooms/E2EIcon";
|
import E2EIcon, { E2E_STATE } from "../rooms/E2EIcon";
|
||||||
import { Phase } from "matrix-js-sdk/src/crypto/verification/request/VerificationRequest";
|
import { Phase } from "matrix-js-sdk/src/crypto/verification/request/VerificationRequest";
|
||||||
import Spinner from "../elements/Spinner";
|
import Spinner from "../elements/Spinner";
|
||||||
import { replaceableComponent } from "../../../utils/replaceableComponent";
|
import { replaceableComponent } from "../../../utils/replaceableComponent";
|
||||||
|
@ -189,7 +189,7 @@ export default class VerificationPanel extends React.PureComponent<IProps, IStat
|
||||||
// Element Web doesn't support scanning yet, so assume here we're the client being scanned.
|
// Element Web doesn't support scanning yet, so assume here we're the client being scanned.
|
||||||
body = <React.Fragment>
|
body = <React.Fragment>
|
||||||
<p>{ description }</p>
|
<p>{ description }</p>
|
||||||
<E2EIcon isUser={true} status="verified" size={128} hideTooltip={true} />
|
<E2EIcon isUser={true} status={E2E_STATE.VERIFIED} size={128} hideTooltip={true} />
|
||||||
<div className="mx_VerificationPanel_reciprocateButtons">
|
<div className="mx_VerificationPanel_reciprocateButtons">
|
||||||
<AccessibleButton
|
<AccessibleButton
|
||||||
kind="danger"
|
kind="danger"
|
||||||
|
@ -252,7 +252,7 @@ export default class VerificationPanel extends React.PureComponent<IProps, IStat
|
||||||
<div className="mx_UserInfo_container mx_VerificationPanel_verified_section">
|
<div className="mx_UserInfo_container mx_VerificationPanel_verified_section">
|
||||||
<h3>{ _t("Verified") }</h3>
|
<h3>{ _t("Verified") }</h3>
|
||||||
<p>{ description }</p>
|
<p>{ description }</p>
|
||||||
<E2EIcon isUser={true} status="verified" size={128} hideTooltip={true} />
|
<E2EIcon isUser={true} status={E2E_STATE.VERIFIED} size={128} hideTooltip={true} />
|
||||||
{ text ? <p>{ text }</p> : null }
|
{ text ? <p>{ text }</p> : null }
|
||||||
<AccessibleButton kind="primary" className="mx_UserInfo_wideButton" onClick={this.props.onClose}>
|
<AccessibleButton kind="primary" className="mx_UserInfo_wideButton" onClick={this.props.onClose}>
|
||||||
{ _t("Got it") }
|
{ _t("Got it") }
|
||||||
|
|
|
@ -16,33 +16,43 @@ limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import React, { useState } from "react";
|
import React, { useState } from "react";
|
||||||
import PropTypes from "prop-types";
|
|
||||||
import classNames from 'classnames';
|
import classNames from 'classnames';
|
||||||
|
|
||||||
import { _t, _td } from '../../../languageHandler';
|
import { _t, _td } from '../../../languageHandler';
|
||||||
import AccessibleButton from "../elements/AccessibleButton";
|
import AccessibleButton from "../elements/AccessibleButton";
|
||||||
import Tooltip from "../elements/Tooltip";
|
import Tooltip from "../elements/Tooltip";
|
||||||
|
import { E2EStatus } from "../../../utils/ShieldUtils";
|
||||||
|
|
||||||
export const E2E_STATE = {
|
export enum E2E_STATE {
|
||||||
VERIFIED: "verified",
|
VERIFIED = "verified",
|
||||||
WARNING: "warning",
|
WARNING = "warning",
|
||||||
UNKNOWN: "unknown",
|
UNKNOWN = "unknown",
|
||||||
NORMAL: "normal",
|
NORMAL = "normal",
|
||||||
UNAUTHENTICATED: "unauthenticated",
|
UNAUTHENTICATED = "unauthenticated",
|
||||||
};
|
}
|
||||||
|
|
||||||
const crossSigningUserTitles = {
|
const crossSigningUserTitles: { [key in E2E_STATE]?: string } = {
|
||||||
[E2E_STATE.WARNING]: _td("This user has not verified all of their sessions."),
|
[E2E_STATE.WARNING]: _td("This user has not verified all of their sessions."),
|
||||||
[E2E_STATE.NORMAL]: _td("You have not verified this user."),
|
[E2E_STATE.NORMAL]: _td("You have not verified this user."),
|
||||||
[E2E_STATE.VERIFIED]: _td("You have verified this user. This user has verified all of their sessions."),
|
[E2E_STATE.VERIFIED]: _td("You have verified this user. This user has verified all of their sessions."),
|
||||||
};
|
};
|
||||||
const crossSigningRoomTitles = {
|
const crossSigningRoomTitles: { [key in E2E_STATE]?: string } = {
|
||||||
[E2E_STATE.WARNING]: _td("Someone is using an unknown session"),
|
[E2E_STATE.WARNING]: _td("Someone is using an unknown session"),
|
||||||
[E2E_STATE.NORMAL]: _td("This room is end-to-end encrypted"),
|
[E2E_STATE.NORMAL]: _td("This room is end-to-end encrypted"),
|
||||||
[E2E_STATE.VERIFIED]: _td("Everyone in this room is verified"),
|
[E2E_STATE.VERIFIED]: _td("Everyone in this room is verified"),
|
||||||
};
|
};
|
||||||
|
|
||||||
const E2EIcon = ({ isUser, status, className, size, onClick, hideTooltip, bordered }) => {
|
interface IProps {
|
||||||
|
isUser?: boolean;
|
||||||
|
status?: E2E_STATE | E2EStatus;
|
||||||
|
className?: string;
|
||||||
|
size?: number;
|
||||||
|
onClick?: () => void;
|
||||||
|
hideTooltip?: boolean;
|
||||||
|
bordered?: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
const E2EIcon: React.FC<IProps> = ({ isUser, status, className, size, onClick, hideTooltip, bordered }) => {
|
||||||
const [hover, setHover] = useState(false);
|
const [hover, setHover] = useState(false);
|
||||||
|
|
||||||
const classes = classNames({
|
const classes = classNames({
|
||||||
|
@ -92,12 +102,4 @@ const E2EIcon = ({ isUser, status, className, size, onClick, hideTooltip, border
|
||||||
</div>;
|
</div>;
|
||||||
};
|
};
|
||||||
|
|
||||||
E2EIcon.propTypes = {
|
|
||||||
isUser: PropTypes.bool,
|
|
||||||
status: PropTypes.oneOf(Object.values(E2E_STATE)),
|
|
||||||
className: PropTypes.string,
|
|
||||||
size: PropTypes.number,
|
|
||||||
onClick: PropTypes.func,
|
|
||||||
};
|
|
||||||
|
|
||||||
export default E2EIcon;
|
export default E2EIcon;
|
|
@ -20,7 +20,7 @@ import React from 'react';
|
||||||
import AccessibleButton from '../elements/AccessibleButton';
|
import AccessibleButton from '../elements/AccessibleButton';
|
||||||
import { _td } from '../../../languageHandler';
|
import { _td } from '../../../languageHandler';
|
||||||
import classNames from "classnames";
|
import classNames from "classnames";
|
||||||
import E2EIcon from './E2EIcon';
|
import E2EIcon, { E2E_STATE } from './E2EIcon';
|
||||||
import { replaceableComponent } from "../../../utils/replaceableComponent";
|
import { replaceableComponent } from "../../../utils/replaceableComponent";
|
||||||
import BaseAvatar from '../avatars/BaseAvatar';
|
import BaseAvatar from '../avatars/BaseAvatar';
|
||||||
import PresenceLabel from "./PresenceLabel";
|
import PresenceLabel from "./PresenceLabel";
|
||||||
|
@ -75,7 +75,7 @@ interface IProps {
|
||||||
suppressOnHover?: boolean;
|
suppressOnHover?: boolean;
|
||||||
showPresence?: boolean;
|
showPresence?: boolean;
|
||||||
subtextLabel?: string;
|
subtextLabel?: string;
|
||||||
e2eStatus?: string;
|
e2eStatus?: E2E_STATE;
|
||||||
powerStatus?: PowerStatus;
|
powerStatus?: PowerStatus;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue