diff --git a/app/client/web/src/constants/Strings.ts b/app/client/web/src/constants/Strings.ts index bf8bcce1..17cc776d 100644 --- a/app/client/web/src/constants/Strings.ts +++ b/app/client/web/src/constants/Strings.ts @@ -14,6 +14,12 @@ export const en = { forgotPassword: 'Forgot Password', manageTopics: 'Manage Sealing Key', + sealUnlock: 'Unlock sealing key to access end-to-end encrypted messages', + sealForget: 'Forget sealing key to revoke access of end-to-end encrypted messages for this device only', + sealDelete: 'Deleting the sealing key will permantently revoke access to all end-to-end encrypted messages from all devices', + sealUpdate: 'Updating the sealing key will only change the locking password', + sealCreate: 'Create a sealing key to send and receive end-to-end encrypted messages', + new: 'New', newMessage: 'New Message', topics: 'Topics', @@ -229,6 +235,13 @@ export const fr = { forgotPassword: 'Mot de Passe Oublié', manageTopics: 'Gérer la clé de sécurité', + + sealUnlock: 'Déverrouiller la clé de scellement pour accéder aux messages chiffrés de bout en bout', + sealForget: 'Oublier la clé de scellement pour révoquer l\'accès aux messages chiffrés de bout en bout pour cet appareil uniquement', + sealDelete: 'La suppression de la clé de scellement révoquera définitivement l\'accès à tous les messages chiffrés de bout en bout depuis tous les appareils', + sealUpdate: 'La mise à jour de la clé de scellement changera uniquement le mot de passe de verrouillage', + sealCreate: 'Créer une clé de scellement pour envoyer et recevoir des messages chiffrés de bout en bout', + new: 'Nouveau', newMessage: 'Nouveau Message', topics: 'Sujets', @@ -447,6 +460,12 @@ export const sp = { forgotPassword: 'Contraseña Olvidada', manageTopics: 'Administrar clave de seguridad', + sealUnlock: 'Desbloquear la clave de sellado para acceder a los mensajes cifrados de extremo a extremo', + sealForget: 'Olvidar la clave de sellado para revocar el acceso a los mensajes cifrados de extremo a extremo solo en este dispositivo', + sealDelete: 'Eliminar la clave de sellado revocará permanentemente el acceso a todos los mensajes cifrados de extremo a extremo desde todos los dispositivos', + sealUpdate: 'Actualizar la clave de sellado solo cambiará la contraseña de bloqueo', + sealCreate: 'Crear una clave de sellado para enviar y recibir mensajes cifrados de extremo a extremo', + new: 'Nuevo', newMessage: 'Nuevo mensaje', topics: 'Temas', @@ -663,6 +682,12 @@ export const pt = { forgotPassword: 'Senha Esquecida', manageTopics: 'Gerenciar Chave de Selagem', + sealUnlock: 'Desbloquear a chave de selagem para acessar mensagens criptografadas de ponta a ponta', + sealForget: 'Esquecer a chave de selagem para revogar o acesso às mensagens criptografadas de ponta a ponta apenas para este dispositivo', + sealDelete: 'Excluir a chave de selagem revogará permanentemente o acesso a todas as mensagens criptografadas de ponta a ponta de todos os dispositivos', + sealUpdate: 'Atualizar a chave de selagem mudará apenas a senha de bloqueio', + sealCreate: 'Criar uma chave de selagem para enviar e receber mensagens criptografadas de ponta a ponta', + new: 'Novo', newMessage: 'Nova mensagem', topics: 'Tópicos', @@ -879,6 +904,12 @@ export const de = { forgotPassword: 'Passwort Vergessen', manageTopics: 'Sicherheitsschlüssel verwalten', + sealUnlock: 'Entsperren Sie den Versiegelungsschlüssel, um auf Ende-zu-Ende-verschlüsselte Nachrichten zuzugreifen', + sealForget: 'Versiegelungsschlüssel vergessen, um den Zugriff auf Ende-zu-Ende-verschlüsselte Nachrichten nur für dieses Gerät zu widerrufen', + sealDelete: 'Das Löschen des Versiegelungsschlüssels widerruft dauerhaft den Zugriff auf alle Ende-zu-Ende-verschlüsselten Nachrichten von allen Geräten', + sealUpdate: 'Das Aktualisieren des Versiegelungsschlüssels ändert nur das Sperrpasswort', + sealCreate: 'Erstellen Sie einen Versiegelungsschlüssel, um Ende-zu-Ende-verschlüsselte Nachrichten zu senden und zu empfangen', + new: 'Neu', newMessage: 'Neue Nachricht', topics: 'Themen', @@ -1096,6 +1127,12 @@ export const ru = { forgotPassword: 'Пароль забыт', manageTopics: 'Управление ключом запечатывания', + sealUnlock: 'Разблокировать ключ запечатывания для доступа к сообщениям с сквозным шифрованием', + sealForget: 'Забыть ключ запечатывания, чтобы отозвать доступ к сообщениям с сквозным шифрованием только для этого устройства', + sealDelete: 'Удаление ключа запечатывания навсегда отзовет доступ ко всем сообщениям с сквозным шифрованием со всех устройств', + sealUpdate: 'Обновление ключа запечатывания изменит только пароль блокировки', + sealCreate: 'Создать ключ запечатывания для отправки и получения сообщений с сквозным шифрованием', + new: 'Новый', newMessage: 'Новое сообщение', topics: 'Темы', diff --git a/app/client/web/src/settings/Settings.module.css b/app/client/web/src/settings/Settings.module.css index 6df13b18..e6a467bc 100644 --- a/app/client/web/src/settings/Settings.module.css +++ b/app/client/web/src/settings/Settings.module.css @@ -3,6 +3,11 @@ flex-direction: column; gap: 16px; + .sealConfig { + cursor: pointer; + color: var(--mantine-color-dbgreen-1); + } + .delete { background-color: var(--mantine-color-red-9); color: var(--mantine-color-red-0); diff --git a/app/client/web/src/settings/Settings.tsx b/app/client/web/src/settings/Settings.tsx index 1d614a4a..5d07a7a2 100644 --- a/app/client/web/src/settings/Settings.tsx +++ b/app/client/web/src/settings/Settings.tsx @@ -33,6 +33,9 @@ import { IconEye, IconBook, IconMapPin, + IconTrash, + IconCaretDown, + IconCaretRight, IconLogout, IconLogin, IconCopy, @@ -67,8 +70,7 @@ export function Settings({ showLogout }: { showLogout: boolean }) { const [addingMfa, setAddingMfa] = useState(false) const [sealDelete, setSealDelete] = useState(false) const [sealReset, setSealReset] = useState(false) - - console.log("SEAL: ", state.config); + const [sealConfig, setSealConfig] = useState(false) const logout = () => modals.openConfirmModal({ @@ -127,6 +129,7 @@ export function Settings({ showLogout }: { showLogout: boolean }) { if (!savingSeal) { setSealDelete(false); setSealReset(false); + setSealConfig(false); actions.setSealPassword(''); actions.setSealConfirm(''); actions.setSealDelete(''); @@ -760,25 +763,36 @@ export function Settings({ showLogout }: { showLogout: boolean }) { opened={sealOpened} onClose={sealClose} overlayProps={{ backgroundOpacity: 0.55, blur: 3 }} + size="lg" centered > <> { !sealDelete && !sealReset && state.config.sealSet && state.config.sealUnlocked && (
- UNLOCK SEAL -
- - + { state.strings.sealForget } +
+ { !sealConfig && ( + setSealConfig(true)}/> + )} + { sealConfig && ( + setSealConfig(false)}/> + )} + { sealConfig && ( + + )} + { sealConfig && ( + + )}
+
+ { !sealConfig && ( + setSealConfig(true)}/> + )} + { sealConfig && ( + setSealConfig(false)}/> + )} + { sealConfig && ( + + )}