241 lines
5.4 KiB
Vue
241 lines
5.4 KiB
Vue
<script setup lang="ts">
|
|
import * as z from "zod";
|
|
import type { FormSubmitEvent } from "@nuxt/ui";
|
|
import hadithaApi from "../../../apis/hadithaApi";
|
|
import { useAuthStore } from "~/stores/authStore";
|
|
import { useStorage } from "@vueuse/core";
|
|
|
|
useHead({
|
|
title: `${
|
|
import.meta.env.VITE_HADITH_PAGE_TITLE
|
|
} | وارد کردن شماره تلفن همراه`,
|
|
meta: [
|
|
{ name: "description", content: "کاوش با هوش مصنوعی در احادیث اسلامی" },
|
|
],
|
|
bodyAttrs: {
|
|
class: import.meta.env.VITE_HADITH_SYSTEM,
|
|
},
|
|
});
|
|
|
|
const emits = defineEmits(["next-step"]);
|
|
|
|
const router = useRouter();
|
|
const authStore = useAuthStore();
|
|
const loading = ref(false);
|
|
|
|
const localizedErrors = {
|
|
required: "Invalid email address",
|
|
// Add more error codes and translations as needed
|
|
};
|
|
|
|
const schema = z.object({
|
|
mobile: z
|
|
.string()
|
|
.min(1, "این فیلد ضروری است.(exmaple : 09--*******)")
|
|
.max(11, "موبایل حداکثر 11 عدد می باشد.(exmaple : 09--*******)"),
|
|
});
|
|
|
|
type Schema = z.output<typeof schema>;
|
|
|
|
const state = reactive<Partial<Schema>>({
|
|
mobile: undefined,
|
|
});
|
|
|
|
const toast = useToast();
|
|
async function onSubmit(event: FormSubmitEvent<Schema>) {
|
|
// const payoload = {
|
|
// username: "dev",
|
|
// password: "dev123",
|
|
// // captcha: "",
|
|
// };
|
|
|
|
authStore
|
|
.loginAsGuest()
|
|
.then((res) => {
|
|
loading.value = false;
|
|
// check if search term is not empty
|
|
|
|
toast.add({
|
|
title: "Success",
|
|
description: res.data.message,
|
|
color: "success",
|
|
});
|
|
|
|
if (!res.data.isNew) emits("next-step");
|
|
else
|
|
navigateTo({
|
|
name: "haditha",
|
|
});
|
|
})
|
|
.catch((err) => {
|
|
console.info(err);
|
|
})
|
|
.finally(() => {
|
|
loading.value = false;
|
|
});
|
|
}
|
|
</script>
|
|
|
|
<template>
|
|
<p class="title">خوش آمدید</p>
|
|
<p class="description">لطفا شماره موبایل خود را وارد کنید</p>
|
|
|
|
<UForm
|
|
:schema="schema"
|
|
:state="state"
|
|
class="space-y-4 w-full"
|
|
@submit="onSubmit"
|
|
>
|
|
<UFormField
|
|
dir="ltr"
|
|
name="mobile"
|
|
class="mb-6"
|
|
:ui="{
|
|
root: 'root',
|
|
wrapper: 'wrapper',
|
|
labelWrapper: 'labelWrapper',
|
|
label: 'label',
|
|
container: 'container',
|
|
description: 'description',
|
|
error: 'error',
|
|
hint: 'hint',
|
|
help: 'help',
|
|
}"
|
|
>
|
|
<UInput
|
|
class="input-elem w-full"
|
|
placeholder="09--*******"
|
|
v-model="state.mobile"
|
|
type="text"
|
|
/>
|
|
</UFormField>
|
|
<UButton
|
|
class="submit-btn w-full flex justify-center"
|
|
variant="solid"
|
|
type="submit"
|
|
>
|
|
ورود / ثبت نام
|
|
</UButton>
|
|
</UForm>
|
|
</template>
|
|
|
|
<style scoped>
|
|
.haditha-login-page {
|
|
background: #f7fffd;
|
|
|
|
.page-container {
|
|
.page-inner-container {
|
|
margin: auto;
|
|
/* max-width: 512px; */
|
|
max-width: 300px;
|
|
/* height: 125px; */
|
|
gap: 24px;
|
|
|
|
.title {
|
|
margin-bottom: 1.2em;
|
|
font-family: IRANSansX;
|
|
font-weight: 400;
|
|
font-size: 20px;
|
|
line-height: 30px;
|
|
letter-spacing: 0%;
|
|
|
|
/* Fallback color */
|
|
color: #4d00ff;
|
|
|
|
/* Gradient background */
|
|
background: linear-gradient(268.94deg, #d284ff -0.65%, #4d00ff 104.59%);
|
|
|
|
/* Clip the background to the text */
|
|
background-clip: text;
|
|
-webkit-background-clip: text; /* For Safari */
|
|
|
|
/* Make the text transparent */
|
|
color: transparent;
|
|
-webkit-text-fill-color: transparent; /* For Safari */
|
|
}
|
|
|
|
.description {
|
|
font-family: IRANSansX;
|
|
font-weight: 400;
|
|
font-size: 14px;
|
|
line-height: 21px;
|
|
letter-spacing: 0%;
|
|
color: #626b84;
|
|
margin-bottom: 5em; /* 70px */
|
|
}
|
|
}
|
|
}
|
|
}
|
|
</style>
|
|
|
|
<style>
|
|
.haditha-login-page {
|
|
.page-container {
|
|
.page-inner-container {
|
|
.input-elem {
|
|
input {
|
|
width: 48;
|
|
height: 53px;
|
|
justify-content: space-between;
|
|
border-radius: 12px;
|
|
border-width: 0.3px;
|
|
padding: 16px;
|
|
background: #ffffff;
|
|
border: 0.3px solid #d9d9d9;
|
|
box-shadow: 0px 1px 4px 0px #0000000d;
|
|
|
|
font-family: IRANSansX;
|
|
font-weight: 400;
|
|
font-size: 16px;
|
|
line-height: 24px;
|
|
letter-spacing: 0%;
|
|
text-align: center;
|
|
color: var(--ui-color-two);
|
|
}
|
|
}
|
|
|
|
.submit-btn {
|
|
width: 480;
|
|
height: 48px;
|
|
gap: 4px;
|
|
padding-top: 9.1px;
|
|
padding-right: 32px;
|
|
padding-bottom: 9.1px;
|
|
padding-left: 32px;
|
|
border-radius: 12px;
|
|
border-width: 0.3px;
|
|
|
|
background: linear-gradient(102.02deg, #4be8ae 7.38%, #00a762 91.78%);
|
|
border: 0.3px solid #d9d9d9;
|
|
box-shadow: 0px 1px 4px 0px #0000000d;
|
|
}
|
|
|
|
.root-pin-input {
|
|
direction: ltr;
|
|
|
|
.base-pin-input {
|
|
width: 56px;
|
|
height: 53px;
|
|
justify-content: space-between;
|
|
border-radius: 12px;
|
|
border-width: 0.3px;
|
|
padding: 16px;
|
|
|
|
border: 0.3px solid #d9d9d9;
|
|
box-shadow: 0px 1px 4px 0px #0000000d;
|
|
|
|
font-family: IRANSansX;
|
|
font-weight: 400;
|
|
font-size: 16px;
|
|
line-height: 100%;
|
|
letter-spacing: 0%;
|
|
text-align: center;
|
|
|
|
color: var(--ui-color-two);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
</style>
|