diff --git a/src/app/[locale]/layout.tsx b/src/app/[locale]/layout.tsx
index ede921c..2cfe2fa 100644
--- a/src/app/[locale]/layout.tsx
+++ b/src/app/[locale]/layout.tsx
@@ -12,6 +12,7 @@ import { ReactNode } from 'react';
import { setRequestLocale } from 'next-intl/server';
import QueryProvider from '@/shared/config/react-query/QueryProvider';
import Script from 'next/script';
+import Provider from '@/features/providers/provider';
export const metadata: Metadata = {
title: PRODUCT_INFO.name,
@@ -48,9 +49,11 @@ export default async function RootLayout({ children, params }: Props) {
disableTransitionOnChange
>
-
- {children}
-
+
+
+ {children}
+
+
diff --git a/src/features/auth/login/lib/formatPhone.ts b/src/features/auth/login/lib/formatPhone.ts
index 860154f..c925370 100644
--- a/src/features/auth/login/lib/formatPhone.ts
+++ b/src/features/auth/login/lib/formatPhone.ts
@@ -1,4 +1,4 @@
-export const formatPhone = (value: string) => {
+const formatPhone = (value: string) => {
if (value.length <= 2) return value;
if (value.length <= 5) return `${value.slice(0, 2)} ${value.slice(2)}`;
if (value.length <= 7)
@@ -9,5 +9,6 @@ export const formatPhone = (value: string) => {
)} ${value.slice(7)}`;
};
-export const normalizeDigits = (value: string) =>
- value.replace(/\D/g, '').slice(0, 9);
+const normalizeDigits = (value: string) => value.replace(/\D/g, '').slice(0, 9);
+
+export { formatPhone, normalizeDigits };
diff --git a/src/features/auth/login/lib/index.ts b/src/features/auth/login/lib/index.ts
index 2b42e9e..eeccbad 100644
--- a/src/features/auth/login/lib/index.ts
+++ b/src/features/auth/login/lib/index.ts
@@ -1 +1,4 @@
// Ushbu fayl loyiha structurasi uchun qo'shilgan. O'chirib tashlasangiz bo'ladi
+export * from './togle';
+export * from './useLoginForm';
+export * from './formatPhone';
diff --git a/src/features/auth/login/model/index.ts b/src/features/auth/login/model/index.ts
index a8e428b..0d7107d 100644
--- a/src/features/auth/login/model/index.ts
+++ b/src/features/auth/login/model/index.ts
@@ -1 +1 @@
-export { RegisterModal } from './model';
+export { AuthModals } from './model';
diff --git a/src/features/auth/login/model/model.tsx b/src/features/auth/login/model/model.tsx
index b91568c..5121b80 100644
--- a/src/features/auth/login/model/model.tsx
+++ b/src/features/auth/login/model/model.tsx
@@ -1,5 +1,14 @@
-function RegisterModal() {
- return
;
+'use client';
+import { AnimatePresence } from 'framer-motion';
+import LoginForm from '../ui/form';
+import { useLoginModal } from '../lib/togle';
+function AuthModals() {
+ const openLoginModal = useLoginModal((state) => state.openLoginModal);
+ return (
+
+ );
}
-export { RegisterModal };
+export { AuthModals };
diff --git a/src/features/auth/login/ui/form.tsx b/src/features/auth/login/ui/form.tsx
index 98de8d8..50a3b77 100644
--- a/src/features/auth/login/ui/form.tsx
+++ b/src/features/auth/login/ui/form.tsx
@@ -10,110 +10,123 @@ import { useLoginForm } from '../lib/useLoginForm';
import { Label } from '@/shared/ui/label';
import { X } from 'lucide-react';
import { useLoginModal } from '../lib/togle';
-
-// ============================= //
+import { MotionWrapper } from './motion';
export default function LoginForm() {
const t = useTranslations();
const [isFocused, setIsFocused] = useState(false);
- // ========== Handlers ========== //
+ const { phone, setPhone, submit, error, loading } = useLoginForm();
+ const toggleLoginModal = useLoginModal((state) => state.toggleLoginModal);
const handlePhoneChange = useCallback(
(e: React.ChangeEvent) => {
setPhone(normalizeDigits(e.target.value));
},
- [],
+ [setPhone],
);
- // ============================== //
-
- const { phone, setPhone, submit, error, loading } = useLoginForm();
- const toggleLoginModal = useLoginModal((state) => state.toggleLoginModal);
-
return (
-