enhance(ux): add warning on encryption password

This commit is contained in:
Tienson Qin
2025-11-11 22:09:38 +08:00
parent e6090dc4c5
commit da55c1f1c1

View File

@@ -1199,6 +1199,32 @@
[:div.panel-wrap.is-collaboration.mb-8
(settings-rtc-members)])
(rum/defc reset-encryption-password
[current-password new-password {:keys [set-new-password!
reset-password-status
on-click]}]
(let [[reset? set-reset!] (hooks/use-state false)]
(if reset?
[:div.flex.flex-col.gap-4
[:label.opacity-70 {:for "current-password"} "Current password"]
(shui/toggle-password
{:id "current-password"
:value current-password
:disabled true})
[:label.opacity-70 {:for "new-password"} "Set new Password"]
(shui/toggle-password
{:id "new-password"
:value new-password
:on-change #(set-new-password! (util/evalue %))})
(when reset-password-status [:p reset-password-status])
(shui/button
{:on-click on-click
:disabled (string/blank? new-password)}
"Reset Password")]
(shui/button
{:on-click #(set-reset! true)}
"Reset Password"))))
(rum/defc encryption
[]
[:div.panel-wrap.is-encryption.mb-8
@@ -1246,31 +1272,32 @@
(p/catch set-init-key-err!)))}
"Init E2EE encrypt-key-pair")]
rsa-key-pair
[:div.flex.flex-col.gap-4
;; [:p "E2EE key-pair already generated!"]
[:label.opacity-70 {:for "current-password"} "Current password"]
(shui/toggle-password
{:id "current-password"
:value current-password
:disabled true})
[:label.opacity-70 {:for "new-password"} "Set new Password"]
(shui/toggle-password
{:id "new-password"
:value new-password
:on-change #(set-new-password! (util/evalue %))})
(when reset-password-status [:p reset-password-status])
(shui/button
{:on-click (fn []
(-> (p/do!
(set-reset-password-status! "Updating password ...")
(state/<invoke-db-worker :thread-api/reset-e2ee-password
token refresh-token user-uuid new-password)
(set-reset-password-status! "Password updated successfully!"))
(p/catch (fn [e]
(log/error :reset-password-failed e)
(set-reset-password-status! "Failed to update password.")))))
:disabled (string/blank? new-password)}
"Reset Password")]))])])
(let [on-submit (fn []
(-> (p/do!
(set-reset-password-status! "Updating password ...")
(state/<invoke-db-worker :thread-api/reset-e2ee-password
token refresh-token user-uuid new-password)
(set-reset-password-status! "Password updated successfully!"))
(p/catch (fn [e]
(log/error :reset-password-failed e)
(set-reset-password-status! "Failed to update password.")))))]
[:div.flex.flex-col.gap-4
;; [:p "E2EE key-pair already generated!"]
[:div.flex.flex-col
[:p
[:span "Please make sure you "]
"remember the password you have set, as we are unable to reset or retrieve it in case you forget it, "
[:span "and we recommend you "]
"keep a secure backup "
[:span "of the password."]]
[:p
"If you lose your password, all of your data in the cloud cant be decrypted. "
[:span "You will still be able to access the local version of your graph."]]]
(reset-encryption-password current-password new-password
{:reset-password-status reset-password-status
:set-new-password! set-new-password!
:on-click on-submit})])))])])
(rum/defc mcp-server-row
[t]