diff --git a/public/locales/fa/app.json b/public/locales/fa/app.json
index b1e8c16..af54719 100644
--- a/public/locales/fa/app.json
+++ b/public/locales/fa/app.json
@@ -7,7 +7,7 @@
"login_navy": "ورود اعضای ناوگان",
"register_navy": "ثبت نام اعضای ناوگان",
"login_welfare_services": "ورود اعضای خدمات رفاهی",
- "user_welfare_services": "خدمات رفاهی",
+ "register_welfare_services": "ثبت نام اعضای خدمات رفاهی",
"user_navy": "ناوگان",
"header": {
"open_profile": "پروفایل",
diff --git a/src/components/login-welfare-services/SendUserData.jsx b/src/components/login-welfare-services/SendUserData.jsx
new file mode 100644
index 0000000..ec8072f
--- /dev/null
+++ b/src/components/login-welfare-services/SendUserData.jsx
@@ -0,0 +1,164 @@
+// import Notifications from "@/core/components/notifications";
+import LinkRouting from "@/core/components/LinkRouting";
+import StyledForm from "@/core/components/StyledForm";
+import { LOGIN_SEND_OTP_TOKEN } from "@/core/data/apiRoutes";
+import CenterLayout from "@/layouts/CenterLayout";
+import FullPageLayout from "@/layouts/FullPageLayout";
+import useDirection from "@/lib/app/hooks/useDirection";
+import FingerprintIcon from "@mui/icons-material/Fingerprint";
+import PersonAddIcon from "@mui/icons-material/PersonAdd";
+import {
+ Box,
+ Button,
+ Container,
+ Grid,
+ Paper,
+ Stack,
+ TextField,
+ Typography,
+} from "@mui/material";
+import axios from "axios";
+import { Field, Formik } from "formik";
+import { useTranslations } from "next-intl";
+import Image from "next/image";
+import { useSearchParams } from "next/navigation";
+import * as Yup from "yup";
+
+const SendUserData = ({ setOtpToken, setPhoneNumber }) => {
+ const t = useTranslations();
+ const { directionApp } = useDirection();
+
+ const searchParams = useSearchParams();
+ const backUrlDecodedPath = searchParams.get("back_url");
+
+ const initialValues = {
+ phone_number: "",
+ };
+ const validationSchema = Yup.object().shape({
+ phone_number: Yup.string().required(t("LoginPage.error_message_required")),
+ });
+
+ const handleSubmit = async (values, props) => {
+ await axios
+ .post(LOGIN_SEND_OTP_TOKEN, {
+ phone_number: values.phone_number,
+ })
+ .then(function (response) {
+ setPhoneNumber(values.phone_number);
+ setOtpToken(true);
+ })
+ .catch(function (error) {
+ // Notifications(directionApp, error.response, t);
+ props.setSubmitting(false);
+ });
+ };
+
+ return (
+
+
+
+
+
+ {(props) => (
+
+
+
+
+
+ {t("login_welfare_services")}
+
+
+
+
+
+
+
+ }
+ disabled={props.isSubmitting ? true : false}
+ >
+ {t("LoginPage.button_make_account")}
+
+
+
+
+ }
+ disabled={props.isSubmitting ? true : false}
+ >
+ {t("LoginPage.button_request_verification")}
+
+
+
+
+
+
+ )}
+
+
+
+
+
+
+ {t("LoginPage.link_routing_back_to")}{" "}
+ {backUrlDecodedPath
+ ? t("LoginPage.link_routing_previuos_page")
+ : t("LoginPage.link_routing_main_page")}
+
+
+
+ );
+};
+
+export default SendUserData;
diff --git a/src/components/login-welfare-services/index.jsx b/src/components/login-welfare-services/index.jsx
index 3ec6b1b..ba30668 100644
--- a/src/components/login-welfare-services/index.jsx
+++ b/src/components/login-welfare-services/index.jsx
@@ -1,166 +1,18 @@
-import LinkRouting from "@/core/components/LinkRouting";
-// import Notifications from "@/core/components/notifications";
-import StyledForm from "@/core/components/StyledForm";
-// import { GET_USER_TOKEN } from "@/core/data/apiRoutes";
-import CenterLayout from "@/layouts/CenterLayout";
-import FullPageLayout from "@/layouts/FullPageLayout";
-import useDirection from "@/lib/app/hooks/useDirection";
-import useUser from "@/lib/app/hooks/useUser";
-import LoginIcon from "@mui/icons-material/Login";
-import PersonAddIcon from "@mui/icons-material/PersonAdd";
-import {
- Box,
- Button,
- Container,
- Grid,
- Paper,
- Stack,
- TextField,
- Typography,
-} from "@mui/material";
-// import axios from "axios";
-import { Field, Formik } from "formik";
-import { useTranslations } from "next-intl";
-import Image from "next/image";
-import { useSearchParams } from "next/navigation";
-import * as Yup from "yup";
+import SendUserData from "./SendUserData";
+import { useState } from "react";
+import SendToken from "./SendToken";
const LoginComponent = () => {
- const t = useTranslations();
- const { directionApp } = useDirection();
- const { setToken } = useUser(); // pass token to set token
+ const [otpToken, setOtpToken] = useState(false);
+ const [PhoneNumber, setPhoneNumber] = useState("");
- // gettin url query
- const searchParams = useSearchParams();
- const backUrlDecodedPath = searchParams.get("back_url");
-
- // formik properties
- // const handleSubmit = async (values, props) => {
- // await axios
- // .post(GET_USER_TOKEN, {
- // phone_number: values.phone_number
- // })
- // .then(function (response) {
- // setToken(response.data.token);
- // })
- // .catch(function (error) {
- // Notifications(directionApp, error.response, t);
- // props.setSubmitting(false);
- // });
- // };
- const initialValues = {
- phone_number: ""
- };
- const validationSchema = Yup.object().shape({
- phone_number: Yup.string().required(t("LoginPage.error_message_required"))
- });
-
- return (
-
-
-
-
-
- {(props) => (
-
-
-
-
-
- {t("login_welfare_services")}
-
-
-
-
-
-
-
- }
- disabled={props.isSubmitting ? true : false}
- >
- {t("LoginPage.button_make_account")}
-
-
-
-
- }
- disabled={props.isSubmitting ? true : false}
- >
- {t("LoginPage.button_submit")}
-
-
-
-
-
-
- )}
-
-
-
-
-
-
- {t("LoginPage.link_routing_back_to")}{" "}
- {backUrlDecodedPath
- ? t("LoginPage.link_routing_previuos_page")
- : t("LoginPage.link_routing_main_page")}
-
-
-
- );
+ if (!otpToken) {
+ return (
+
+ );
+ } else {
+ return ;
+ }
};
export default LoginComponent;
diff --git a/src/components/login-welfare-services/sendToken.jsx b/src/components/login-welfare-services/sendToken.jsx
index e69de29..00414b7 100644
--- a/src/components/login-welfare-services/sendToken.jsx
+++ b/src/components/login-welfare-services/sendToken.jsx
@@ -0,0 +1,130 @@
+// import Notifications from "@/core/components/notifications";
+import StyledForm from "@/core/components/StyledForm";
+import { LOGIN } from "@/core/data/apiRoutes";
+import CenterLayout from "@/layouts/CenterLayout";
+import FullPageLayout from "@/layouts/FullPageLayout";
+import useDirection from "@/lib/app/hooks/useDirection";
+import useUser from "@/lib/app/hooks/useUser";
+import LoginIcon from "@mui/icons-material/Login";
+import {
+ Box,
+ Button,
+ Container,
+ Grid,
+ Paper,
+ Stack,
+ TextField,
+ Typography,
+} from "@mui/material";
+import axios from "axios";
+import { Field, Formik } from "formik";
+import { useTranslations } from "next-intl";
+import Image from "next/image";
+import * as Yup from "yup";
+
+const SendToken = ({ PhoneNumber }) => {
+ const t = useTranslations();
+ const { directionApp } = useDirection();
+ const { setToken } = useUser();
+
+ const initialValues = {
+ phone_number: PhoneNumber,
+ verification_code: "",
+ };
+ const validationSchema = Yup.object().shape({
+ verification_code: Yup.string().required(
+ t("LoginPage.error_message_required")
+ ),
+ });
+
+ const handleSubmit = async (values, props) => {
+ await axios
+ .post(LOGIN, {
+ phone_number: values.phone_number,
+ verification_code: values.verification_code,
+ })
+ .then(function (response) {
+ setToken(response.data.token);
+ })
+ .catch(function (error) {
+ Notifications(directionApp, error.response, t);
+ props.setSubmitting(false);
+ });
+ };
+
+ return (
+
+
+
+
+
+ {(props) => (
+
+
+
+
+
+ {t("login_navy")}
+
+
+
+
+
+
+ }
+ disabled={props.isSubmitting ? true : false}
+ >
+ {t("LoginPage.button_submit")}
+
+
+
+
+
+
+ )}
+
+
+
+
+
+ );
+};
+
+export default SendToken;
diff --git a/src/components/register-welfare-services/SendUserData.jsx b/src/components/register-welfare-services/SendUserData.jsx
new file mode 100644
index 0000000..ddf4933
--- /dev/null
+++ b/src/components/register-welfare-services/SendUserData.jsx
@@ -0,0 +1,171 @@
+import LinkRouting from "@/core/components/LinkRouting";
+import StyledForm from "@/core/components/StyledForm";
+import { REGISTER_SEND_OTP_TOKEN } from "@/core/data/apiRoutes";
+import CenterLayout from "@/layouts/CenterLayout";
+import FullPageLayout from "@/layouts/FullPageLayout";
+import FingerprintIcon from "@mui/icons-material/Fingerprint";
+import {
+ Box,
+ Button,
+ Container,
+ Paper,
+ Stack,
+ TextField,
+ Typography,
+} from "@mui/material";
+import axios from "axios";
+import { Field, Formik } from "formik";
+import { useTranslations } from "next-intl";
+import Image from "next/image";
+import { useSearchParams } from "next/navigation";
+import * as Yup from "yup";
+
+const SendUserData = ({
+ setOtpToken,
+ setPhoneNumber,
+ setNationalId,
+ setTypeId,
+}) => {
+ const t = useTranslations();
+
+ const searchParams = useSearchParams();
+ const backUrlDecodedPath = searchParams.get("back_url");
+
+ const initialValues = {
+ type_id: "2",
+ phone_number: "",
+ national_id: "",
+ };
+ const validationSchema = Yup.object().shape({
+ phone_number: Yup.string().required(
+ t("RegisterPage.error_message_required")
+ ),
+ national_id: Yup.string().required(
+ t("RegisterPage.error_message_required")
+ ),
+ });
+
+ const handleSubmit = async (values, props) => {
+ await axios
+ .post(REGISTER_SEND_OTP_TOKEN, {
+ type_id: values.type_id,
+ national_id: values.national_id,
+ phone_number: values.phone_number,
+ })
+ .then(function (response) {
+ setPhoneNumber(values.phone_number);
+ setNationalId(values.national_id);
+ setTypeId(values.type_id);
+ setOtpToken(true);
+ })
+ .catch(function (error) {
+ Notifications(directionApp, error.response, t);
+ props.setSubmitting(false);
+ });
+ };
+
+ return (
+
+
+
+
+
+ {(props) => (
+
+
+
+
+
+ {t("register_welfare_services")}
+
+
+
+
+
+ }
+ disabled={props.isSubmitting ? true : false}
+ >
+ {t("RegisterPage.button_request_verification")}
+
+
+
+
+ )}
+
+
+
+
+
+
+ {t("RegisterPage.link_routing_back_to")}{" "}
+ {t("RegisterPage.link_routing_login_navy")}
+
+
+
+ );
+};
+
+export default SendUserData;
diff --git a/src/components/register-welfare-services/index.jsx b/src/components/register-welfare-services/index.jsx
index b9a35c5..24678eb 100644
--- a/src/components/register-welfare-services/index.jsx
+++ b/src/components/register-welfare-services/index.jsx
@@ -1,169 +1,32 @@
-import StyledForm from "@/core/components/StyledForm";
-import {
- Box,
- Button,
- Container,
- Paper,
- Stack,
- Typography,
- TextField,
-} from "@mui/material";
-import { Field, Formik } from "formik";
-import Image from "next/image";
-import FingerprintIcon from "@mui/icons-material/Fingerprint";
-import FullPageLayout from "@/layouts/FullPageLayout";
-import CenterLayout from "@/layouts/CenterLayout";
-import { useTranslations } from "next-intl";
-import * as Yup from "yup";
-import LinkRouting from "@/core/components/LinkRouting";
-import { useSearchParams } from "next/navigation";
-import useDirection from "@/lib/app/hooks/useDirection";
-import useUser from "@/lib/app/hooks/useUser";
-// import { GET_USER_TOKEN } from "@/core/data/apiRoutes";
-// import axios from "axios";
+import { useState } from "react";
+import SendToken from "./SendToken";
+import SendUserData from "./SendUserData";
const RegisterNavyComponent = () => {
- const t = useTranslations();
+ const [otpToken, setOtpToken] = useState(false);
+ const [PhoneNumber, setPhoneNumber] = useState("");
+ const [nationalId, setNationalId] = useState("");
+ const [navganId, setNavganId] = useState("");
+ const [typeId, setTypeId] = useState("");
- const { directionApp } = useDirection();
- const { setToken } = useUser();
-
- const searchParams = useSearchParams();
- const backUrlDecodedPath = searchParams.get("back_url");
-
- const initialValues = {
- type_id: "2",
- phone_number: "",
- national_id: "",
- navgan_id: "",
- };
- const validationSchema = Yup.object().shape({
- phone_number: Yup.string().required(
- t("RegisterPage.error_message_required")
- ),
- national_id: Yup.string().required(
- t("RegisterPage.error_message_required")
- ),
- });
- // const handleSubmit = async (values, props) => {
- // await axios
- // .post(GET_USER_TOKEN, {
- // type_id: values.type_id,
- // national_id: values.national_id,
- // navgan_id: values.navgan_id,
- // phone_number: values.phone_number,
- // })
- // .then(function (response) {
- // setToken(response.data.token);
- // })
- // .catch(function (error) {
- // Notifications(directionApp, error.response, t);
- // props.setSubmitting(false);
- // });
- // };
-
- return (
-
-
-
-
-
- {(props) => (
-
-
-
-
-
- {t("register_navy")}
-
-
-
-
-
- }
- disabled={props.isSubmitting ? true : false}
- >
- {t("RegisterPage.button_request_verification")}
-
-
-
-
- )}
-
-
-
-
-
-
- {t("RegisterPage.link_routing_back_to")}{" "}
- {t("RegisterPage.link_routing_login_navy")}
-
-
-
- );
+ if (!otpToken) {
+ return (
+
+ );
+ } else {
+ return (
+
+ );
+ }
};
export default RegisterNavyComponent;
diff --git a/src/components/register-welfare-services/sendToken.jsx b/src/components/register-welfare-services/sendToken.jsx
index e69de29..3fa7f1c 100644
--- a/src/components/register-welfare-services/sendToken.jsx
+++ b/src/components/register-welfare-services/sendToken.jsx
@@ -0,0 +1,127 @@
+import StyledForm from "@/core/components/StyledForm";
+import { REGISTER } from "@/core/data/apiRoutes";
+import CenterLayout from "@/layouts/CenterLayout";
+import FullPageLayout from "@/layouts/FullPageLayout";
+// import useDirection from "@/lib/app/hooks/useDirection";
+import useUser from "@/lib/app/hooks/useUser";
+import LoginIcon from "@mui/icons-material/Login";
+import {
+ Box,
+ Button,
+ Container,
+ Paper,
+ Stack,
+ TextField,
+ Typography,
+} from "@mui/material";
+import axios from "axios";
+import { Field, Formik } from "formik";
+import { useTranslations } from "next-intl";
+import Image from "next/image";
+import * as Yup from "yup";
+
+const SendToken = ({ PhoneNumber, nationalId, typeId }) => {
+ const t = useTranslations();
+ // const { directionApp } = useDirection();
+ const { setToken } = useUser();
+
+ const initialValues = {
+ phone_number: PhoneNumber,
+ national_id: nationalId,
+ type_id: typeId,
+ verification_code: "",
+ };
+ const validationSchema = Yup.object().shape({
+ verification_code: Yup.string().required(
+ t("RegisterPage.error_message_required")
+ ),
+ });
+
+ const handleSubmit = async (values, props) => {
+ await axios
+ .post(REGISTER, {
+ phone_number: values.phone_number,
+ national_id: values.national_id,
+ type_id: values.type_id,
+ verification_code: values.verification_code,
+ })
+ .then(function (response) {
+ setToken(response.data.token);
+ })
+ .catch(function (error) {
+ // Notifications(directionApp, error.response, t);
+ props.setSubmitting(false);
+ });
+ };
+
+ return (
+
+
+
+
+
+ {(props) => (
+
+
+
+
+
+ {t("register_navy")}
+
+
+
+
+ }
+ disabled={props.isSubmitting ? true : false}
+ >
+ {t("RegisterPage.button_submit")}
+
+
+
+
+ )}
+
+
+
+
+
+ );
+};
+
+export default SendToken;