summaryrefslogtreecommitdiff
path: root/pse-dashboard/src/components/PasswordInput.vue
diff options
context:
space:
mode:
Diffstat (limited to 'pse-dashboard/src/components/PasswordInput.vue')
-rw-r--r--pse-dashboard/src/components/PasswordInput.vue45
1 files changed, 45 insertions, 0 deletions
diff --git a/pse-dashboard/src/components/PasswordInput.vue b/pse-dashboard/src/components/PasswordInput.vue
new file mode 100644
index 0000000..599f438
--- /dev/null
+++ b/pse-dashboard/src/components/PasswordInput.vue
@@ -0,0 +1,45 @@
+<script setup>
+import { ref } from 'vue';
+import { FloatingLabelInput } from '@/components';
+
+defineProps({
+ modelValue: {
+ type: String,
+ default: ""
+ },
+ label: {
+ type: String,
+ default: "Password"
+ }
+});
+
+defineEmits(['update:modelValue'])
+const isPasswordVisible = ref(false);
+</script>
+<template>
+ <div class="input-group form-input">
+ <FloatingLabelInput
+ :type="isPasswordVisible ? 'text' : 'password'"
+ :label="label"
+ :model-value="modelValue"
+ @update:model-value="newValue =>
+ $emit('update:modelValue', newValue)"
+ />
+
+ <label class="btn btn-outline-secondary d-flex align-items-center password-visible">
+ <input
+ v-model="isPasswordVisible"
+ type="checkbox"
+ class="btn-check"
+ autocomplete="off"
+ >
+ <i
+ class="fa"
+ :class="isPasswordVisible ? 'fa-eye-slash' : 'fa-eye'"
+ />
+ </label>
+ </div>
+</template>
+<style scoped>
+</style>
+