forked from mirrors/homebox
feat: toggle view of password field (#263)
This commit is contained in:
parent
504569bed0
commit
f36f17b57d
3 changed files with 38 additions and 4 deletions
34
frontend/components/Form/Password.vue
Normal file
34
frontend/components/Form/Password.vue
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
<template>
|
||||||
|
<div class="flex">
|
||||||
|
<FormTextField v-model="value" placeholder="Password" label="Password" :type="inputType"> </FormTextField>
|
||||||
|
<button
|
||||||
|
type="button"
|
||||||
|
class="inline-flex p-1 ml-1 justify-center mt-auto mb-3 tooltip"
|
||||||
|
data-tip="Toggle Password Show"
|
||||||
|
@click="toggle()"
|
||||||
|
>
|
||||||
|
<Icon name="mdi-eye" class="h-5 w-5" />
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup lang="ts">
|
||||||
|
type Props = {
|
||||||
|
modelValue: string;
|
||||||
|
placeholder: string;
|
||||||
|
label: string;
|
||||||
|
};
|
||||||
|
|
||||||
|
const props = withDefaults(defineProps<Props>(), {
|
||||||
|
placeholder: "Password",
|
||||||
|
label: "Password",
|
||||||
|
});
|
||||||
|
|
||||||
|
const [hide, toggle] = useToggle(true);
|
||||||
|
|
||||||
|
const inputType = computed(() => {
|
||||||
|
return hide.value ? "password" : "text";
|
||||||
|
});
|
||||||
|
|
||||||
|
const value = useVModel(props, "modelValue");
|
||||||
|
</script>
|
|
@ -174,7 +174,7 @@
|
||||||
Don't Want To Join a Group?
|
Don't Want To Join a Group?
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
<FormTextField v-model="password" label="Set your password" type="password" />
|
<FormPassword v-model="password" label="Set your password" />
|
||||||
<PasswordScore v-model:valid="canRegister" :password="password" />
|
<PasswordScore v-model:valid="canRegister" :password="password" />
|
||||||
<div class="card-actions justify-end">
|
<div class="card-actions justify-end">
|
||||||
<button
|
<button
|
||||||
|
@ -202,7 +202,7 @@
|
||||||
<p class="text-xs text-center"><b>Password</b> demo</p>
|
<p class="text-xs text-center"><b>Password</b> demo</p>
|
||||||
</template>
|
</template>
|
||||||
<FormTextField v-model="email" label="Email" />
|
<FormTextField v-model="email" label="Email" />
|
||||||
<FormTextField v-model="loginPassword" label="Password" type="password" />
|
<FormPassword v-model="loginPassword" label="Password" />
|
||||||
<div class="card-actions justify-end mt-2">
|
<div class="card-actions justify-end mt-2">
|
||||||
<button type="submit" class="btn btn-primary" :class="loading ? 'loading' : ''" :disabled="loading">
|
<button type="submit" class="btn btn-primary" :class="loading ? 'loading' : ''" :disabled="loading">
|
||||||
Login
|
Login
|
||||||
|
|
|
@ -187,8 +187,8 @@
|
||||||
<BaseModal v-model="passwordChange.dialog">
|
<BaseModal v-model="passwordChange.dialog">
|
||||||
<template #title> Change Password </template>
|
<template #title> Change Password </template>
|
||||||
|
|
||||||
<FormTextField v-model="passwordChange.current" label="Current Password" type="password" />
|
<FormPassword v-model="passwordChange.current" label="Current Password" />
|
||||||
<FormTextField v-model="passwordChange.new" label="New Password" type="password" />
|
<FormPassword v-model="passwordChange.new" label="New Password" />
|
||||||
<PasswordScore v-model:valid="passwordChange.isValid" :password="passwordChange.new" />
|
<PasswordScore v-model:valid="passwordChange.isValid" :password="passwordChange.new" />
|
||||||
|
|
||||||
<div class="flex">
|
<div class="flex">
|
||||||
|
|
Loading…
Reference in a new issue