92 lines
2.1 KiB
Vue
92 lines
2.1 KiB
Vue
<script setup>
|
|
const props = defineProps({
|
|
mobileNumber: {
|
|
type: String,
|
|
required: false,
|
|
},
|
|
isDialogVisible: {
|
|
type: Boolean,
|
|
required: true,
|
|
},
|
|
})
|
|
|
|
const emit = defineEmits([
|
|
'update:isDialogVisible',
|
|
'submit',
|
|
])
|
|
|
|
const phoneNumber = ref(structuredClone(toRaw(props.mobileNumber)))
|
|
|
|
const formSubmit = () => {
|
|
if (phoneNumber.value) {
|
|
emit('submit', phoneNumber.value)
|
|
emit('update:isDialogVisible', false)
|
|
}
|
|
}
|
|
|
|
const resetPhoneNumber = () => {
|
|
phoneNumber.value = structuredClone(toRaw(props.mobileNumber))
|
|
emit('update:isDialogVisible', false)
|
|
}
|
|
</script>
|
|
|
|
<template>
|
|
<VDialog
|
|
max-width="900"
|
|
:model-value="props.isDialogVisible"
|
|
@update:model-value="(val) => $emit('update:isDialogVisible', val)"
|
|
>
|
|
<VCard class="pa-5 pa-sm-11">
|
|
<!-- 👉 dialog close btn -->
|
|
<DialogCloseBtn
|
|
variant="text"
|
|
size="default"
|
|
@click="resetPhoneNumber"
|
|
/>
|
|
|
|
<VCardText class="pt-5">
|
|
<div class="mb-6">
|
|
<h5 class="text-h5 mb-2">
|
|
Verify Your Mobile Number for SMS
|
|
</h5>
|
|
|
|
<div>
|
|
Enter your mobile phone number with country code and we will send you a verification code.
|
|
</div>
|
|
</div>
|
|
<VForm @submit.prevent="() => {}">
|
|
<VTextField
|
|
v-model="phoneNumber"
|
|
name="mobile"
|
|
label="Phone Number"
|
|
placeholder="+1 123 456 7890"
|
|
class="mb-8"
|
|
/>
|
|
|
|
<div class="d-flex flex-wrap justify-end gap-3">
|
|
<VBtn
|
|
color="secondary"
|
|
variant="outlined"
|
|
@click="resetPhoneNumber"
|
|
>
|
|
Cancel
|
|
</VBtn>
|
|
<VBtn
|
|
color="success"
|
|
type="submit"
|
|
@click="formSubmit"
|
|
>
|
|
Submit
|
|
<VIcon
|
|
end
|
|
icon="ri-check-line"
|
|
class="flip-in-rtl"
|
|
/>
|
|
</VBtn>
|
|
</div>
|
|
</VForm>
|
|
</VCardText>
|
|
</VCard>
|
|
</VDialog>
|
|
</template>
|