chore(pack): optimize dependencies, reduce bundle size
This commit is contained in:
@@ -1,47 +1,26 @@
|
||||
<template>
|
||||
<div class="card dialog">
|
||||
|
||||
|
||||
<div class="card-title">
|
||||
{{ t('changePassword') }}
|
||||
</div>
|
||||
|
||||
<div class="card-content">
|
||||
<p class="description mb-4">{{ t('passwordDescription') }}</p>
|
||||
|
||||
<v-text-field
|
||||
v-model="newPassword"
|
||||
:label="t('newPassword')"
|
||||
:type="showNewPassword ? 'text' : 'password'"
|
||||
variant="outlined"
|
||||
required
|
||||
:hint="t('passwordRequirements')"
|
||||
>
|
||||
|
||||
<v-text-field v-model="newPassword" :label="t('newPassword')" :type="showNewPassword ? 'text' : 'password'"
|
||||
variant="outlined" required :hint="t('passwordRequirements')">
|
||||
<template v-slot:append-inner>
|
||||
<v-icon
|
||||
@click="showNewPassword = !showNewPassword"
|
||||
class="visibility-toggle"
|
||||
size="small"
|
||||
>
|
||||
{{ showNewPassword ? 'mdi-eye-off' : 'mdi-eye' }}
|
||||
</v-icon>
|
||||
<v-icon @click="showNewPassword = !showNewPassword" class="visibility-toggle" size="small"
|
||||
:icon="showNewPassword ? mdiEyeOff : mdiEye" />
|
||||
</template>
|
||||
</v-text-field>
|
||||
|
||||
<v-text-field
|
||||
v-model="confirmPassword"
|
||||
:label="t('confirmPassword')"
|
||||
:type="showConfirmPassword ? 'text' : 'password'"
|
||||
variant="outlined"
|
||||
required
|
||||
>
|
||||
|
||||
<v-text-field v-model="confirmPassword" :label="t('confirmPassword')"
|
||||
:type="showConfirmPassword ? 'text' : 'password'" variant="outlined" required>
|
||||
<template v-slot:append-inner>
|
||||
<v-icon
|
||||
@click="showConfirmPassword = !showConfirmPassword"
|
||||
class="visibility-toggle"
|
||||
size="small"
|
||||
>
|
||||
{{ showConfirmPassword ? 'mdi-eye-off' : 'mdi-eye' }}
|
||||
</v-icon>
|
||||
<v-icon @click="showConfirmPassword = !showConfirmPassword" class="visibility-toggle" size="small"
|
||||
:icon="showNewPassword ? mdiEyeOff : mdiEye" />
|
||||
</template>
|
||||
</v-text-field>
|
||||
|
||||
@@ -58,7 +37,7 @@
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -81,7 +60,7 @@ const showConfirmPassword = ref(false);
|
||||
async function handleChangePassword() {
|
||||
// Clear previous error
|
||||
errorMessage.value = '';
|
||||
|
||||
|
||||
// Validate passwords match
|
||||
if (newPassword.value !== confirmPassword.value) {
|
||||
errorMessage.value = t('passwordsDoNotMatch');
|
||||
@@ -100,10 +79,10 @@ async function handleChangePassword() {
|
||||
// Pass empty string for current password since we're already authenticated
|
||||
// This will use the set-password endpoint for OAuth users
|
||||
await authStore.changePassword(newPassword.value);
|
||||
|
||||
|
||||
// Success - close dialog
|
||||
emit('closeRequested');
|
||||
|
||||
|
||||
// You could also emit a success event if needed
|
||||
// emit('success');
|
||||
} catch (error) {
|
||||
@@ -117,7 +96,6 @@ async function handleChangePassword() {
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
.dialog {
|
||||
@apply max-w-md mx-auto;
|
||||
}
|
||||
@@ -138,7 +116,6 @@ async function handleChangePassword() {
|
||||
:deep(.v-field__append-inner) {
|
||||
padding-inline-start: 0;
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
<i18n>
|
||||
@@ -181,4 +158,4 @@ async function handleChangePassword() {
|
||||
}
|
||||
}
|
||||
|
||||
</i18n>
|
||||
</i18n>
|
||||
|
||||
Reference in New Issue
Block a user