diff options
| author | Kit La Touche <kit@transneptune.net> | 2024-11-15 10:14:41 -0500 |
|---|---|---|
| committer | Kit La Touche <kit@transneptune.net> | 2024-11-15 10:14:41 -0500 |
| commit | 1635a4db77898e9394adaa104b4c53b94c59e2da (patch) | |
| tree | 041158bc15a1b83caaa245fbe60faf46e84a3070 /ui/lib/components/ChangePassword.svelte | |
| parent | fefe76b35b6329cbcc92755a65e47c7f62f64690 (diff) | |
| parent | 2fb328089f01776e5bb553a1d50a061396588c8c (diff) | |
Merge branch 'main' into prop/shorter-expiry
Diffstat (limited to 'ui/lib/components/ChangePassword.svelte')
| -rw-r--r-- | ui/lib/components/ChangePassword.svelte | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/ui/lib/components/ChangePassword.svelte b/ui/lib/components/ChangePassword.svelte new file mode 100644 index 0000000..1e48bee --- /dev/null +++ b/ui/lib/components/ChangePassword.svelte @@ -0,0 +1,60 @@ +<script> + import { changePassword } from '$lib/apiServer.js'; + + let currentPassword = $state(''), + newPassword = $state(''), + confirmPassword = $state(''), + pending = $state(false), + form; + let valid = $derived(newPassword === confirmPassword && newPassword !== currentPassword); + let disabled = $derived(pending || !valid); + + async function onsubmit(event) { + event.preventDefault(); + pending = true; + let response = await changePassword(currentPassword, newPassword); + switch (response.status) { + case 200: + form.reset(); + break; + } + pending = false; + } +</script> + +<form {onsubmit} bind:this={form}> + <label + >current password + <input + class="input" + name="currentPassword" + type="password" + placeholder="password" + bind:value={currentPassword} + /> + </label> + + <label + >new password + <input + class="input" + name="newPassword" + type="password" + placeholder="password" + bind:value={newPassword} + /> + </label> + + <label + >confirm new password + <input + class="input" + name="confirmPassword" + type="password" + placeholder="password" + bind:value={confirmPassword} + /> + </label> + + <button class="btn bg-orange-500 mt-4" type="submit" {disabled}>change password</button> +</form> |
