diff --git a/src/app/(auth)/(login)/change-passowrd/page.tsx b/src/app/(auth)/(login)/change-passowrd/page.tsx index 136f5f6..6bae497 100644 --- a/src/app/(auth)/(login)/change-passowrd/page.tsx +++ b/src/app/(auth)/(login)/change-passowrd/page.tsx @@ -74,7 +74,8 @@ function ChangePassword() { )} - - {loading ? "در حال ارسال..." : "تغییر کلمه عبور"} + + تغییر کلمه عبور diff --git a/src/app/(auth)/(login)/forget-password-otp/page.tsx b/src/app/(auth)/(login)/forget-password-otp/page.tsx index 0c23b96..4eee0d4 100644 --- a/src/app/(auth)/(login)/forget-password-otp/page.tsx +++ b/src/app/(auth)/(login)/forget-password-otp/page.tsx @@ -96,9 +96,9 @@ function ForgetPasswordOtp() { - {loading ? "در حال ارسال..." : "تایید کد"} + تایید کد diff --git a/src/app/(auth)/(login)/forget-password/page.tsx b/src/app/(auth)/(login)/forget-password/page.tsx index ed6aba1..c008d53 100644 --- a/src/app/(auth)/(login)/forget-password/page.tsx +++ b/src/app/(auth)/(login)/forget-password/page.tsx @@ -6,6 +6,7 @@ import AuthInput from "@/components/auth/AuthInput"; import Container from "@/components/elements/Container"; import Link from "next/link"; import React from "react"; +import { useRouter } from "next/navigation"; import useAxios from "@/hooks/useAxios"; import { useFormik } from "formik"; import * as yup from "yup"; @@ -52,6 +53,7 @@ function ForgetPassword() { name="mobile" maxLength={11} type="text" + dir="ltr" placeholder="09 _ _ _ _ _ _ _ _ _" className={`border ${ formik.touched.mobile && formik.errors.mobile @@ -67,8 +69,8 @@ function ForgetPassword() { {formik.errors.mobile} )} - - {loading ? "در حال ارسال..." : "ارسال کد"} + + ارسال کد diff --git a/src/app/(auth)/(login)/login-with-username/page.tsx b/src/app/(auth)/(login)/login-with-username/page.tsx index fc28709..def2e84 100644 --- a/src/app/(auth)/(login)/login-with-username/page.tsx +++ b/src/app/(auth)/(login)/login-with-username/page.tsx @@ -104,7 +104,8 @@ function LoginWithUsername() { )} - - {loading ? "در حال ارسال..." : "ورود"} + + ورود diff --git a/src/app/(auth)/(login)/login/page.tsx b/src/app/(auth)/(login)/login/page.tsx index 2118e77..63d9c5c 100644 --- a/src/app/(auth)/(login)/login/page.tsx +++ b/src/app/(auth)/(login)/login/page.tsx @@ -10,6 +10,7 @@ import React, { useState } from "react"; import useAxios from "@/hooks/useAxios"; import { useFormik } from "formik"; import * as yup from "yup"; +import { useRouter } from "next/navigation"; import { markOtpSent } from "@/lib/auth/otpTimer"; // Validation schema using Yup @@ -54,7 +55,8 @@ function Login() { name="mobile" maxLength={11} type="tel" - pattern="[0-9]*" + pattern="[0-9]*" + dir="ltr" placeholder="09 _ _ _ _ _ _ _ _ _" className={`border ${ formik.touched.mobile && formik.errors.mobile @@ -70,8 +72,8 @@ function Login() { {formik.errors.mobile} )} - - {loading ? "در حال ارسال..." : "ارسال کد"} + + ارسال کد diff --git a/src/app/(auth)/(login)/verify-otp/page.tsx b/src/app/(auth)/(login)/verify-otp/page.tsx index c2ea992..cc6cc03 100644 --- a/src/app/(auth)/(login)/verify-otp/page.tsx +++ b/src/app/(auth)/(login)/verify-otp/page.tsx @@ -133,9 +133,9 @@ function VerifyOtp() { - {loading ? "در حال ارسال..." : "تایید کد"} + تایید کد diff --git a/src/app/(auth)/(register)/register-otp/page.tsx b/src/app/(auth)/(register)/register-otp/page.tsx index 80b4a19..f5ce4b7 100644 --- a/src/app/(auth)/(register)/register-otp/page.tsx +++ b/src/app/(auth)/(register)/register-otp/page.tsx @@ -105,9 +105,9 @@ function RegisterOtp() { - {loading ? "در حال ارسال..." : "تایید کد"} + تایید کد diff --git a/src/app/(auth)/(register)/register/fullname/page.tsx b/src/app/(auth)/(register)/register/fullname/page.tsx index f3c0bb9..1879ee9 100644 --- a/src/app/(auth)/(register)/register/fullname/page.tsx +++ b/src/app/(auth)/(register)/register/fullname/page.tsx @@ -3,7 +3,10 @@ import AuthHead from "@/components/auth/AuthHead"; import AuthInput from "@/components/auth/AuthInput"; -import Container from "@/components/elements/Container"; +import AuthPageLayout, { + AuthFormFooter, + AuthPageContent, +} from "@/components/auth/AuthPageLayout"; import React from "react"; import useAxios from "@/hooks/useAxios"; import { useFormik } from "formik"; @@ -45,17 +48,19 @@ function FullNamePage() { }); return ( - -
- -
+ + + + +
{formik.touched.name && formik.errors.name && ( - + {formik.errors.name} )} @@ -75,6 +80,7 @@ function FullNamePage() { name="family" type="text" placeholder="نام خانوادگی" + dir="rtl" className={`border mt-4 ${ formik.touched.family && formik.errors.family ? "border-red-500 dark:border-red-500" @@ -85,17 +91,20 @@ function FullNamePage() { onBlur={formik.handleBlur} /> {formik.touched.family && formik.errors.family && ( - + {formik.errors.family} )} +
+
- - {loading ? "در حال ارسال..." : "ثبت و ادامه"} + + + ثبت و ادامه - -
-
+ + + ); } diff --git a/src/app/(auth)/(register)/register/page.tsx b/src/app/(auth)/(register)/register/page.tsx index 1037df3..b1c56aa 100644 --- a/src/app/(auth)/(register)/register/page.tsx +++ b/src/app/(auth)/(register)/register/page.tsx @@ -9,6 +9,7 @@ import React, { useState } from "react"; import useAxios from "@/hooks/useAxios"; import { useFormik } from "formik"; import * as yup from "yup"; +import { useRouter } from "next/navigation"; import { markOtpSent } from "@/lib/auth/otpTimer"; // Validation schema using Yup @@ -53,6 +54,7 @@ function Register() { name="mobile" maxLength={11} type="text" + dir="ltr" placeholder="09 _ _ _ _ _ _ _ _ _" className={`border ${ formik.touched.mobile && formik.errors.mobile @@ -68,8 +70,8 @@ function Register() { {formik.errors.mobile} )} - - {loading ? "در حال ارسال..." : "ارسال کد"} + + ارسال کد - - - + + + ); } diff --git a/src/app/(auth)/verify/avatar/page.tsx b/src/app/(auth)/verify/avatar/page.tsx index 2621531..040e37c 100644 --- a/src/app/(auth)/verify/avatar/page.tsx +++ b/src/app/(auth)/verify/avatar/page.tsx @@ -1,7 +1,10 @@ "use client"; import React, { useEffect, useState, useCallback } from "react"; -import Container from "@/components/elements/Container"; +import AuthPageLayout, { + AuthFormFooter, + AuthPageContent, +} from "@/components/auth/AuthPageLayout"; import AuthNextButton from "@/components/auth/AuthNextButton"; import { IMAGE_BASE_URL, buildStorageUrl } from "@/components/main/BaseUrl"; import useAxios from "@/hooks/useAxios"; @@ -20,7 +23,6 @@ function AvatarPage() { const { request, loading } = useAxios(); const [userDetail, setUserDetail] = useState(null); const [avatar, setAvatar] = useState(null); - const [originalImage, setOriginalImage] = useState(null); // تصویر اصلی (سایز کامل) const [crop, setCrop] = useState({ x: 0, y: 0 }); const [zoom, setZoom] = useState(1); const [loadingUpload, setLoadingUpload] = useState(false); @@ -50,8 +52,7 @@ function AvatarPage() { const reader = new FileReader(); reader.onload = (e) => { const imageDataUrl = e.target?.result as string; - setAvatar(imageDataUrl); // برای کراپر - setOriginalImage(imageDataUrl); // تصویر اصلی (سایز کامل) + setAvatar(imageDataUrl); }; reader.readAsDataURL(file); } @@ -105,7 +106,6 @@ function AvatarPage() { } catch (err) { console.log("Upload error:", err); toast.error("خطا در ارسال تصویر!"); - } finally { setLoadingUpload(false); } }; @@ -120,28 +120,11 @@ function AvatarPage() { }; return ( - -
- {(loading || loadingUpload) &&

Loading...

} + + + تصویر پروفایل - {!loading && !loadingUpload && ( - <> - تصویر پروفایل - - {/* نمایش تصویر اصلی (سایز کامل) */} - {originalImage && ( -
- Original image -
- )} - - {/* کراپر برای برش تصویر به مربع 1:1 */} -
+
{avatar ? ( - - - + + + + - - ثبت و ادامه - - - - - )} -
- + + + ثبت و ادامه + + + ); } diff --git a/src/app/(auth)/verify/colors/page.tsx b/src/app/(auth)/verify/colors/page.tsx index ea2b374..0a4336e 100644 --- a/src/app/(auth)/verify/colors/page.tsx +++ b/src/app/(auth)/verify/colors/page.tsx @@ -1,7 +1,10 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ "use client"; -import Container from "@/components/elements/Container"; +import AuthPageLayout, { + AuthFormFooter, + AuthPageContent, +} from "@/components/auth/AuthPageLayout"; import React, { useState } from "react"; import useAxios from "@/hooks/useAxios"; import * as yup from "yup"; @@ -88,8 +91,8 @@ function Colors() { return ( - -
+ + سایز
@@ -163,24 +166,19 @@ function Colors() {
)}
+ + router.push("/verify/public-relations")}> - {loading ? "در حال ارسال..." : "ثبت و ادامه"} + ثبت و ادامه - -
- + +
); } diff --git a/src/app/(auth)/verify/confirm/page.tsx b/src/app/(auth)/verify/confirm/page.tsx index 12aff28..4facdd1 100644 --- a/src/app/(auth)/verify/confirm/page.tsx +++ b/src/app/(auth)/verify/confirm/page.tsx @@ -8,20 +8,23 @@ import AuthNextButton from "@/components/auth/AuthNextButton"; import Modal from "@/components/elements/Modal"; import Link from "next/link"; import Image from "next/image"; +import ProfileAvatar from "@/components/main/ProfileAvatar"; import { useUser } from "@/hooks/useUser"; -import { IMAGE_BASE_URL, buildStorageUrl } from "@/components/main/BaseUrl"; function Confirm() { const user = useUser(); const router = useRouter(); const [showModal, setShowModal] = useState(false); + const [navigating, setNavigating] = useState(false); const userType: string | null = typeof window !== "undefined" ? localStorage.getItem("usertype") : null; const confirmHandler = () => { + setNavigating(true); if (userType !== "employer") { setShowModal(true); + setNavigating(false); } else { router.push("/"); } @@ -36,13 +39,11 @@ function Confirm() { ورود شما به خانواده مدستاگرام را تبریک می گوییم{" "}
- {user?.user_name
@@ -117,7 +118,7 @@ function Confirm() {
{/* */} - + ثبت و ادامه diff --git a/src/app/(auth)/verify/cooperation-type/page.tsx b/src/app/(auth)/verify/cooperation-type/page.tsx index 357f2b0..40eeefd 100644 --- a/src/app/(auth)/verify/cooperation-type/page.tsx +++ b/src/app/(auth)/verify/cooperation-type/page.tsx @@ -1,7 +1,10 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ "use client"; -import Container from "@/components/elements/Container"; +import AuthPageLayout, { + AuthFormFooter, + AuthPageContent, +} from "@/components/auth/AuthPageLayout"; import React from "react"; import useAxios from "@/hooks/useAxios"; import { useFormik } from "formik"; @@ -44,20 +47,22 @@ function CooperationType() { }); return ( - -
- نوع همکاری -
- -
+ +
+ + نوع همکاری +
+ +
-

- آیا مایل به همکاری خارج از محل سکونت خود هستید؟ -

- +

+ آیا مایل به همکاری خارج از محل سکونت خود هستید؟ +

+ +
- {/* Error Message */} {formik.errors.selectedButton && formik.touched.selectedButton && (
{formik.errors.selectedButton}
)} +
+
- - {loading ? "در حال ارسال..." : "ثبت و ادامه"} + router.push("/verify/public-relations")}> + + ثبت و ادامه - - -
-
+ + + ); } diff --git a/src/app/(auth)/verify/expertise/page.tsx b/src/app/(auth)/verify/expertise/page.tsx index e97f994..4266d24 100644 --- a/src/app/(auth)/verify/expertise/page.tsx +++ b/src/app/(auth)/verify/expertise/page.tsx @@ -1,7 +1,10 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ "use client"; -import Container from "@/components/elements/Container"; +import AuthPageLayout, { + AuthFormFooter, + AuthPageContent, +} from "@/components/auth/AuthPageLayout"; import React, { useEffect, useState } from "react"; import useAxios from "@/hooks/useAxios"; import * as yup from "yup"; @@ -89,8 +92,8 @@ function Expertise() { ); return ( - -
+ + تخصص @@ -126,25 +129,19 @@ function Expertise() { ))}
+ + router.push("/verify/services")}> - {loading ? "در حال ارسال..." : "ثبت و ادامه"} + ثبت و ادامه - - -
- + + ); } diff --git a/src/app/(auth)/verify/gender/page.tsx b/src/app/(auth)/verify/gender/page.tsx index 5944ca5..f850d17 100644 --- a/src/app/(auth)/verify/gender/page.tsx +++ b/src/app/(auth)/verify/gender/page.tsx @@ -1,7 +1,10 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ "use client"; -import Container from "@/components/elements/Container"; +import AuthPageLayout, { + AuthFormFooter, + AuthPageContent, +} from "@/components/auth/AuthPageLayout"; import React from "react"; import useAxios from "@/hooks/useAxios"; import { useFormik } from "formik"; @@ -50,16 +53,18 @@ function Gender() { }); return ( - -
- جنسیت -
- -
-
+ + + + جنسیت +
+ +
+ +
- {/* Error Message */} {formik.errors.selectedButton && formik.touched.selectedButton && (
{formik.errors.selectedButton}
)} +
+
- - {loading ? "در حال ارسال..." : "ثبت و ادامه"} + router.push("/verify/sizes")}> + + ثبت و ادامه - - -
-
+ + + ); } diff --git a/src/app/(auth)/verify/location/page.tsx b/src/app/(auth)/verify/location/page.tsx index 31ee1ee..2327e1b 100644 --- a/src/app/(auth)/verify/location/page.tsx +++ b/src/app/(auth)/verify/location/page.tsx @@ -1,7 +1,10 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ "use client"; -import Container from "@/components/elements/Container"; +import AuthPageLayout, { + AuthFormFooter, + AuthPageContent, +} from "@/components/auth/AuthPageLayout"; import React, { useEffect, useState } from "react"; import useAxios from "@/hooks/useAxios"; import { useFormik } from "formik"; @@ -118,20 +121,22 @@ function LocationPage() { }; return ( - -
- لوکیشن -
- -
+ +
+ + لوکیشن +
+ +
- - مشخص کنید در کدام شهر قادر به انجام فعالیت هستید - - + + مشخص کنید در کدام شهر قادر به انجام فعالیت هستید + + +
- - {loading ? "در حال ارسال..." : "ثبت و ادامه"} - +
+
- -
-
-
+ router.push("/verify/national-cart")}> + + ثبت و ادامه + + + + ); } diff --git a/src/app/(auth)/verify/national-cart/page.tsx b/src/app/(auth)/verify/national-cart/page.tsx index c62d1dd..11c1822 100644 --- a/src/app/(auth)/verify/national-cart/page.tsx +++ b/src/app/(auth)/verify/national-cart/page.tsx @@ -1,7 +1,10 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ "use client"; -import Container from "@/components/elements/Container"; +import AuthPageLayout, { + AuthFormFooter, + AuthPageContent, +} from "@/components/auth/AuthPageLayout"; import React, { useState } from "react"; import useAxios from "@/hooks/useAxios"; import { useRouter } from "next/navigation"; @@ -69,8 +72,8 @@ function NationalCart() { }; return ( - -
+ + احراز هویت
@@ -146,25 +149,19 @@ function NationalCart() {
+ +
+ + router.push("/verify/confirm")}> - {loading ? "در حال ارسال..." : "ثبت و ادامه"} + ثبت و ادامه - - - - -
-
+ + ); } diff --git a/src/app/(auth)/verify/public-relations/page.tsx b/src/app/(auth)/verify/public-relations/page.tsx index 6ea5556..4cf115e 100644 --- a/src/app/(auth)/verify/public-relations/page.tsx +++ b/src/app/(auth)/verify/public-relations/page.tsx @@ -1,7 +1,10 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ "use client"; -import Container from "@/components/elements/Container"; +import AuthPageLayout, { + AuthFormFooter, + AuthPageContent, +} from "@/components/auth/AuthPageLayout"; import React from "react"; import useAxios from "@/hooks/useAxios"; import { useFormik } from "formik"; @@ -46,18 +49,18 @@ function PublicRelations() { }); return ( - -
- روابط عمومی -
- -
- -
- + + + + روابط عمومی +
+ +
+ +
در مورد خودتان چیزی بگویید