frontend/components/account/AccountTab.vue
2025-06-05 21:51:14 +02:00

43 lines
1.2 KiB
Vue

<template>
<div class="content-l">
<h2>Account</h2>
<div class="content-m">
<h3>Passwort ändern</h3>
<div class="col-2">
<UiInput label="Passwort">
<input type="password" v-model="password">
</UiInput>
<UiInput label="Passwort wiederholen">
<input type="password" v-model="passwordRepeat">
</UiInput>
</div>
<div class="center">
<UiButton :onclick="() => change()" :disabled="password.length === 0 || password !== passwordRepeat">Passwort Ändern</UiButton>
</div>
</div>
</div>
</template>
<script setup lang="ts">
import { changePassword } from '~/requests/user';
const password = ref("");
const passwordRepeat = ref("");
function change()
{
if(password.value !== passwordRepeat.value)
{
throw new Error("[Method: AccountTab.change] passwords do not match.");
}
changePassword(requireUser().username, password.value, () => {
resetFields();
});
}
function resetFields()
{
password.value = "";
passwordRepeat.value = "";
}
</script>