55 * Please see LICENSE files in the repository root for full details.
66 */
77
8- import { Button , InlineSpinner , VisualList , VisualListItem } from "@vector-im/compound-web" ;
9- import CheckIcon from "@vector-im/compound-design-tokens/assets/web/icons/check" ;
10- import InfoIcon from "@vector-im/compound-design-tokens/assets/web/icons/info" ;
11- import ErrorIcon from "@vector-im/compound-design-tokens/assets/web/icons/error-solid" ;
8+ import { Alert , Button , InlineSpinner , VisualList , VisualListItem } from "@vector-im/compound-web" ;
9+ import CheckCircle from "@vector-im/compound-design-tokens/assets/web/icons/check-circle" ;
10+ import Group from "@vector-im/compound-design-tokens/assets/web/icons/group" ;
11+ import UserProfileSolid from "@vector-im/compound-design-tokens/assets/web/icons/user-profile-solid" ;
12+ import VisibilityOff from "@vector-im/compound-design-tokens/assets/web/icons/visibility-off" ;
1213import React , { type JSX , useState } from "react" ;
1314
1415import { _t } from "../../../../languageHandler" ;
@@ -69,24 +70,29 @@ export function ResetIdentityBody({ onCancelClick, onReset, variant }: ResetIden
6970 const [ inProgress , setInProgress ] = useState ( false ) ;
7071
7172 return (
72- < EncryptionCard Icon = { ErrorIcon } destructive = { true } title = { titleForVariant ( variant ) } >
73+ < EncryptionCard
74+ Icon = { UserProfileSolid }
75+ title = { titleForVariant ( variant ) }
76+ description = { descriptionForVariant ( variant ) }
77+ >
7378 < EncryptionCardEmphasisedContent >
7479 < VisualList >
75- < VisualListItem Icon = { CheckIcon } success = { true } >
80+ < VisualListItem Icon = { CheckCircle } success = { true } >
7681 { _t ( "settings|encryption|advanced|breadcrumb_first_description" ) }
7782 </ VisualListItem >
78- < VisualListItem Icon = { InfoIcon } >
83+ < VisualListItem Icon = { VisibilityOff } >
7984 { _t ( "settings|encryption|advanced|breadcrumb_second_description" ) }
8085 </ VisualListItem >
81- < VisualListItem Icon = { InfoIcon } >
86+ < VisualListItem Icon = { Group } >
8287 { _t ( "settings|encryption|advanced|breadcrumb_third_description" ) }
8388 </ VisualListItem >
8489 </ VisualList >
8590 { variant === "compromised" && < span > { _t ( "settings|encryption|advanced|breadcrumb_warning" ) } </ span > }
8691 </ EncryptionCardEmphasisedContent >
92+ { alertForVariant ( variant ) }
8793 < EncryptionCardButtons >
8894 < Button
89- destructive = { true }
95+ destructive = { destructiveForVariant ( variant ) }
9096 disabled = { inProgress }
9197 onClick = { async ( ) => {
9298 setInProgress ( true ) ;
@@ -135,6 +141,31 @@ function titleForVariant(variant: ResetIdentityBodyVariant): string {
135141 }
136142}
137143
144+ function descriptionForVariant ( variant : ResetIdentityBodyVariant ) : string | undefined {
145+ switch ( variant ) {
146+ case "no_verification_method" :
147+ return _t ( "settings|encryption|advanced|breadcrumb_description_no_verification_method" ) ;
148+ case "confirm" :
149+ return _t ( "settings|encryption|advanced|breadcrumb_description" ) ;
150+ case "compromised" :
151+ case "sync_failed" :
152+ case "forgot" :
153+ return undefined ;
154+ }
155+ }
156+
157+ function alertForVariant ( variant : string ) : JSX . Element | undefined {
158+ switch ( variant ) {
159+ case "confirm" :
160+ return < Alert type = "critical" title = { _t ( "settings|encryption|advanced|breadcrumb_alert_cant_confirm" ) } /> ;
161+ case "no_verification_method" :
162+ case "compromised" :
163+ case "sync_failed" :
164+ case "forgot" :
165+ return undefined ;
166+ }
167+ }
168+
138169function cancelTextForVariant ( variant : ResetIdentityBodyVariant ) : string {
139170 switch ( variant ) {
140171 case "confirm" :
@@ -146,3 +177,15 @@ function cancelTextForVariant(variant: ResetIdentityBodyVariant): string {
146177 return _t ( "action|sign_out_before_verify" ) ;
147178 }
148179}
180+
181+ function destructiveForVariant ( variant : ResetIdentityBodyVariant ) : boolean {
182+ switch ( variant ) {
183+ case "no_verification_method" :
184+ return false ;
185+ case "confirm" :
186+ case "compromised" :
187+ case "sync_failed" :
188+ case "forgot" :
189+ return true ;
190+ }
191+ }
0 commit comments