diff options
author | Sebastian <sebasjm@gmail.com> | 2023-05-26 16:52:30 -0300 |
---|---|---|
committer | Sebastian <sebasjm@gmail.com> | 2023-05-26 16:52:30 -0300 |
commit | 69b66e715eae039330898f470a8993d1d154b583 (patch) | |
tree | 794cbd7ba6ae8657dbadc96b0576f33ce488546b /packages/exchange-backoffice-ui/src/pages/UnlockAccount.tsx | |
parent | be27647ff73d1529372a80c3e145f3ee4f229a17 (diff) | |
download | wallet-core-69b66e715eae039330898f470a8993d1d154b583.tar.xz |
account as hook
Diffstat (limited to 'packages/exchange-backoffice-ui/src/pages/UnlockAccount.tsx')
-rw-r--r-- | packages/exchange-backoffice-ui/src/pages/UnlockAccount.tsx | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/packages/exchange-backoffice-ui/src/pages/UnlockAccount.tsx b/packages/exchange-backoffice-ui/src/pages/UnlockAccount.tsx new file mode 100644 index 000000000..941e28627 --- /dev/null +++ b/packages/exchange-backoffice-ui/src/pages/UnlockAccount.tsx @@ -0,0 +1,70 @@ +import { TranslatedString } from "@gnu-taler/taler-util"; +import { notifyError, notifyInfo } from "@gnu-taler/web-util/browser"; +import { VNode, h } from "preact"; +import { UnwrapKeyError } from "../account.js"; +import { createNewForm } from "../handlers/forms.js"; + +export function UnlockAccount({ + onAccountUnlocked, +}: { + onAccountUnlocked: (password: string) => void; +}): VNode { + const Form = createNewForm<{ + password: string; + }>(); + + return ( + <div class="flex min-h-full flex-col "> + <div class="sm:mx-auto sm:w-full sm:max-w-md"> + <h2 class="mt-6 text-center text-2xl font-bold leading-9 tracking-tight text-gray-900"> + Account locked + </h2> + <p class="mt-6 text-lg leading-8 text-gray-600"> + Your account is normally locked anytime you reload. To unlock type + your password again. + </p> + </div> + + <div class="mt-10 sm:mx-auto sm:w-full sm:max-w-[480px] "> + <div class="bg-gray-100 px-6 py-6 shadow sm:rounded-lg sm:px-12"> + <Form.Provider + onSubmit={async (v) => { + try { + await onAccountUnlocked(v.password); + + notifyInfo("Account unlocked" as TranslatedString); + } catch (e) { + if (e instanceof UnwrapKeyError) { + notifyError( + "Could not unlock account" as any, + e.message as any, + ); + } else { + throw e; + } + } + }} + > + <div class="mb-4"> + <Form.InputLine + label={"Password" as TranslatedString} + name="password" + type="password" + required + /> + </div> + + <div class="mt-8"> + <button + type="submit" + class="flex w-full justify-center rounded-md bg-indigo-600 px-3 py-1.5 text-sm font-semibold leading-6 text-white shadow-sm hover:bg-indigo-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600" + > + Unlock + </button> + </div> + </Form.Provider> + </div> + </div> + </div> + ); +} |