/
Netrunners
/
Millenium_UI
Обзор
Документация
Войти
/
Netrunners
/
Millenium_UI
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/lib/components/chat/Settings/Account/UpdatePassword.svelte
112 строк
3 KB
Валерий Конюхов
first_commit
08 июл 2025, 22:20
08 июл 2025, 22:20
a4e8dc9
Код
Авторство
О чём код?
<script lang="ts"> import { getContext } from 'svelte'; import { toast } from 'svelte-sonner'; import { updateUserPassword } from '$lib/apis/auths'; const i18n = getContext('i18n'); let show = false; let currentPassword = ''; let newPassword = ''; let newPasswordConfirm = ''; const updatePasswordHandler = async () => { if (newPassword === newPasswordConfirm) { const res = await updateUserPassword(localStorage.token, currentPassword, newPassword).catch( (error) => { toast.error(`${error}`); return null; } ); if (res) { toast.success($i18n.t('Successfully updated.')); } currentPassword = ''; newPassword = ''; newPasswordConfirm = ''; } else { toast.error( `The passwords you entered don't quite match. Please double-check and try again.` ); newPassword = ''; newPasswordConfirm = ''; } }; </script> <form class="flex flex-col text-sm" on:submit|preventDefault={() => { updatePasswordHandler(); }} > <div class="flex justify-between items-center text-sm"> <div class=" font-medium">{$i18n.t('Change Password')}</div> <button class=" text-xs font-medium text-gray-500" type="button" on:click={() => { show = !show; }}>{show ? $i18n.t('Hide') : $i18n.t('Show')}</button > </div> {#if show} <div class=" py-2.5 space-y-1.5"> <div class="flex flex-col w-full"> <div class=" mb-1 text-xs text-gray-500">{$i18n.t('Current Password')}</div> <div class="flex-1"> <input class="w-full bg-transparent dark:text-gray-300 outline-hidden placeholder:opacity-30" type="password" bind:value={currentPassword} placeholder={$i18n.t('Enter your current password')} autocomplete="current-password" required /> </div> </div> <div class="flex flex-col w-full"> <div class=" mb-1 text-xs text-gray-500">{$i18n.t('New Password')}</div> <div class="flex-1"> <input class="w-full bg-transparent text-sm dark:text-gray-300 outline-hidden placeholder:opacity-30" type="password" bind:value={newPassword} placeholder={$i18n.t('Enter your new password')} autocomplete="new-password" required /> </div> </div> <div class="flex flex-col w-full"> <div class=" mb-1 text-xs text-gray-500">{$i18n.t('Confirm Password')}</div> <div class="flex-1"> <input class="w-full bg-transparent text-sm dark:text-gray-300 outline-hidden placeholder:opacity-30" type="password" bind:value={newPasswordConfirm} placeholder={$i18n.t('Confirm your new password')} autocomplete="off" required /> </div> </div> </div> <div class="mt-3 flex justify-end"> <button class="px-3.5 py-1.5 text-sm font-medium bg-black hover:bg-gray-900 text-white dark:bg-white dark:text-black dark:hover:bg-gray-100 transition rounded-full" > {$i18n.t('Update password')} </button> </div> {/if} </form>