diff --git a/src/app/dashboard/page.tsx b/src/app/dashboard/page.tsx index 6d48022..80882f9 100644 --- a/src/app/dashboard/page.tsx +++ b/src/app/dashboard/page.tsx @@ -1,75 +1,38 @@ "use client"; -import ReactLenis from "lenis/react"; -import NavbarLayoutFloatingInline from "@/components/navbar/NavbarLayoutFloatingInline"; -import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider"; -import HeroBillboardDashboard from "@/components/sections/hero/HeroBillboardDashboard"; -import { BarChart3, Package, Users, Settings, Bell, PlusCircle, ArrowUpCircle, TrendingUp, CheckCircle, XCircle } from "lucide-react"; -import AuthGuard from "../AuthGuard"; +import { useEffect } from 'react'; +import { useRouter } from 'next/navigation'; +import { useAuth } from '@/hooks/useAuth'; export default function DashboardPage() { - const navItems = [ - { name: "Özellikler", id: "features" }, - { name: "Fiyatlandırma", id: "pricing" }, - { name: "İzlenebilirlik", id: "traceability" }, - { name: "Günlükler", id: "/logs" }, - { name: "Hareketler", id: "/movements" }, - { name: "Raporlar", id: "/reports" }, - { name: "Hakkımızda", id: "about" }, - { name: "Varyasyonlar", id: "/product-variations" }, - { name: "Üretim", id: "/production" }, - { name: "Reçeteler", id: "/recipes" }, - { name: "Yönetim Paneli", id: "/superadmin" }, - { name: "Giriş Yap", id: "/login" }, - { name: "Gösterge Paneli", id: "/dashboard" }, - { name: "İletişim", id: "contact" } - ]; + const { isAuthenticated, isLoading, logout } = useAuth(); + const router = useRouter(); - return ( - - - - - console.log("Add new product") }, - { text: "Rapor Oluştur", onClick: () => console.log("Generate report") }, - ], - chartTitle: "Son 7 Günlük Stok Hareketi", chartData: [ - { value: 120 }, { value: 150 }, { value: 130 }, { value: 170 }, { value: 140 }, { value: 190 }, { value: 160 } - ], - listItems: [ - { icon: ArrowUpCircle, title: "Yeni Giriş: Ürün X", status: "Tamamlandı" }, - { icon: TrendingUp, title: "Stok Azaldı: Ürün Y", status: "Beklemede" }, - { icon: CheckCircle, title: "Sipariş #1234", status: "Gönderildi" }, - { icon: XCircle, title: "İade: Ürün Z", status: "Sorunlu" }, - ], - listTitle: "Son Hareketler", imageSrc: "https://images.unsplash.com/photo-1579547612702-fe1e4889c565?q=80&w=2670&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D", imageAlt: "Dashboard Background" - }} - /> - - - - ); -} \ No newline at end of file + useEffect(() => { + if (!isLoading && !isAuthenticated) { + router.push('/login'); + } + }, [isAuthenticated, isLoading, router]); + + if (isLoading) { + return
Yükleniyor...
; + } + + if (!isAuthenticated) { + return null; // Or a loading spinner, as the redirect will happen soon + } + + return ( +
+

Gösterge Paneli

+

Hoş geldiniz! Burası size özel gösterge paneliniz.

+ +

Yalnızca yetkili kullanıcılar erişebilir.

+
+ ); +} diff --git a/src/app/login/page.tsx b/src/app/login/page.tsx index c172203..84dbcfc 100644 --- a/src/app/login/page.tsx +++ b/src/app/login/page.tsx @@ -1,57 +1,34 @@ "use client"; -import React from "react"; -import ReactLenis from "lenis/react"; -import NavbarLayoutFloatingInline from "@/components/navbar/NavbarLayoutFloatingInline"; -import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider"; +import { useAuth } from '@/hooks/useAuth'; +import { useEffect } from 'react'; import { useRouter } from 'next/navigation'; export default function LoginPage() { - const router = useRouter(); - const navItems = [ - { name: "Özellikler", id: "features" }, - { name: "Fiyatlandırma", id: "pricing" }, - { name: "İzlenebilirlik", id: "traceability" }, - { name: "Günlükler", id: "/logs" }, - { name: "Hareketler", id: "/movements" }, - { name: "Raporlar", id: "/reports" }, - { name: "Hakkımızda", id: "about" }, - { name: "Varyasyonlar", id: "/product-variations" }, - { name: "Üretim", id: "/production" }, - { name: "Reçeteler", id: "/recipes" }, - { name: "Yönetim Paneli", id: "/superadmin" }, - { name: "Giriş Yap", id: "/login" }, - { name: "Gösterge Paneli", id: "/dashboard" }, - { name: "İletişim", id: "contact" } - ]; + const { isAuthenticated, isLoading, login } = useAuth(); + const router = useRouter(); - const handleLogin = () => { - // Simulate successful login - localStorage.setItem('isAuthenticated', 'true'); - router.push('/dashboard'); - }; + useEffect(() => { + if (!isLoading && isAuthenticated) { + router.push('/dashboard'); // Redirect if already authenticated + } + }, [isAuthenticated, isLoading, router]); - return ( - - - -
-
-

Hesabınıza Giriş Yapın

-

Stokify yönetim paneline erişmek için giriş yapın.

- -
-
-
-
- ); -} \ No newline at end of file + if (isLoading) { + return
Yükleniyor...
; + } + + return ( +
+

Giriş Yap

+

Panel sayfalarına erişmek için lütfen giriş yapın.

+ +

Bu demo için basit bir giriş simülasyonudur.

+
+ ); +} diff --git a/src/app/logs/page.tsx b/src/app/logs/page.tsx index b1e833e..510956d 100644 --- a/src/app/logs/page.tsx +++ b/src/app/logs/page.tsx @@ -1,44 +1,32 @@ "use client"; -import React from "react"; -import ReactLenis from "lenis/react"; -import NavbarLayoutFloatingInline from "@/components/navbar/NavbarLayoutFloatingInline"; -import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider"; -import AuthGuard from "../AuthGuard"; +import { useEffect } from 'react'; +import { useRouter } from 'next/navigation'; +import { useAuth } from '@/hooks/useAuth'; export default function LogsPage() { - const navItems = [ - { name: "Özellikler", id: "features" }, - { name: "Fiyatlandırma", id: "pricing" }, - { name: "İzlenebilirlik", id: "traceability" }, - { name: "Günlükler", id: "/logs" }, - { name: "Hareketler", id: "/movements" }, - { name: "Raporlar", id: "/reports" }, - { name: "Hakkımızda", id: "about" }, - { name: "Varyasyonlar", id: "/product-variations" }, - { name: "Üretim", id: "/production" }, - { name: "Reçeteler", id: "/recipes" }, - { name: "Yönetim Paneli", id: "/superadmin" }, - { name: "Giriş Yap", id: "/login" }, - { name: "Gösterge Paneli", id: "/dashboard" }, - { name: "İletişim", id: "contact" } - ]; + const { isAuthenticated, isLoading } = useAuth(); + const router = useRouter(); - return ( - - - - -
-

Sistem Günlükleri

-

Tüm sistem hareketlerinin detaylı günlükleri burada gösterilecektir.

-
-
-
-
- ); -} \ No newline at end of file + useEffect(() => { + if (!isLoading && !isAuthenticated) { + router.push('/login'); + } + }, [isAuthenticated, isLoading, router]); + + if (isLoading) { + return
Yükleniyor...
; + } + + if (!isAuthenticated) { + return null; // Or a loading spinner, as the redirect will happen soon + } + + return ( +
+

Günlükler Paneli

+

Burada tüm sistem günlüklerini görüntüleyebilirsiniz.

+

Yalnızca yetkili kullanıcılar erişebilir.

+
+ ); +} diff --git a/src/app/movements/page.tsx b/src/app/movements/page.tsx index b34c92a..6a3a4f8 100644 --- a/src/app/movements/page.tsx +++ b/src/app/movements/page.tsx @@ -1,44 +1,32 @@ "use client"; -import React from "react"; -import ReactLenis from "lenis/react"; -import NavbarLayoutFloatingInline from "@/components/navbar/NavbarLayoutFloatingInline"; -import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider"; -import AuthGuard from "../AuthGuard"; +import { useEffect } from 'react'; +import { useRouter } from 'next/navigation'; +import { useAuth } from '@/hooks/useAuth'; export default function MovementsPage() { - const navItems = [ - { name: "Özellikler", id: "features" }, - { name: "Fiyatlandırma", id: "pricing" }, - { name: "İzlenebilirlik", id: "traceability" }, - { name: "Günlükler", id: "/logs" }, - { name: "Hareketler", id: "/movements" }, - { name: "Raporlar", id: "/reports" }, - { name: "Hakkımızda", id: "about" }, - { name: "Varyasyonlar", id: "/product-variations" }, - { name: "Üretim", id: "/production" }, - { name: "Reçeteler", id: "/recipes" }, - { name: "Yönetim Paneli", id: "/superadmin" }, - { name: "Giriş Yap", id: "/login" }, - { name: "Gösterge Paneli", id: "/dashboard" }, - { name: "İletişim", id: "contact" } - ]; + const { isAuthenticated, isLoading } = useAuth(); + const router = useRouter(); - return ( - - - - -
-

Stok Hareketleri

-

Ürünlerin giriş ve çıkış hareketleri bu sayfada görüntülenecektir.

-
-
-
-
- ); -} \ No newline at end of file + useEffect(() => { + if (!isLoading && !isAuthenticated) { + router.push('/login'); + } + }, [isAuthenticated, isLoading, router]); + + if (isLoading) { + return
Yükleniyor...
; + } + + if (!isAuthenticated) { + return null; // Or a loading spinner, as the redirect will happen soon + } + + return ( +
+

Hareketler Paneli

+

Ürünlerin tüm hareket geçmişini buradan takip edebilirsiniz.

+

Yalnızca yetkili kullanıcılar erişebilir.

+
+ ); +} diff --git a/src/app/page.tsx b/src/app/page.tsx index bec7c0b..c07fe6d 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -18,16 +18,7 @@ export default function SaasTemplatePage() { { name: "Özellikler", id: "features" }, { name: "Fiyatlandırma", id: "pricing" }, { name: "İzlenebilirlik", id: "traceability" }, - { name: "Günlükler", id: "/logs" }, - { name: "Hareketler", id: "/movements" }, - { name: "Raporlar", id: "/reports" }, { name: "Hakkımızda", id: "about" }, - { name: "Varyasyonlar", id: "/product-variations" }, - { name: "Üretim", id: "/production" }, - { name: "Reçeteler", id: "/recipes" }, - { name: "Yönetim Paneli", id: "/superadmin" }, - { name: "Giriş Yap", id: "/login" }, - { name: "Gösterge Paneli", id: "/dashboard" }, { name: "İletişim", id: "contact" } ]; @@ -87,15 +78,17 @@ export default function SaasTemplatePage() { { type: "text-icon", text: "Otomatik Raporlama", icon: BarChart3 }, ]} /> - +
+ +
- - -
- -
- -
- - ); -} \ No newline at end of file + useEffect(() => { + if (!isLoading && !isAuthenticated) { + router.push('/login'); + } + }, [isAuthenticated, isLoading, router]); + + if (isLoading) { + return
Yükleniyor...
; + } + + if (!isAuthenticated) { + return null; // Or a loading spinner, as the redirect will happen soon + } + + return ( +
+

Varyasyonlar Paneli

+

Ürün varyasyonlarınızı buradan yönetin.

+

Yalnızca yetkili kullanıcılar erişebilir.

+
+ ); +} diff --git a/src/app/production/page.tsx b/src/app/production/page.tsx index 31f82b7..29b78c6 100644 --- a/src/app/production/page.tsx +++ b/src/app/production/page.tsx @@ -1,57 +1,32 @@ "use client"; -import ReactLenis from "lenis/react"; -import NavbarLayoutFloatingInline from "@/components/navbar/NavbarLayoutFloatingInline"; -import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider"; -import HeroCentered from "@/components/sections/hero/HeroCentered"; -import { Wrench, BookOpen, Factory, ShoppingCart, Clock, DollarSign, ListChecks, Database, FlaskConical } from "lucide-react"; +import { useEffect } from 'react'; +import { useRouter } from 'next/navigation'; +import { useAuth } from '@/hooks/useAuth'; export default function ProductionPage() { - const navItems = [ - { name: "Özellikler", id: "features" }, - { name: "Üretim", id: "/production" }, - { name: "Reçeteler", id: "/recipes" }, - { name: "Fiyatlandırma", id: "pricing" }, - { name: "Hakkımızda", id: "about" }, - { name: "İletişim", id: "contact" } - ]; + const { isAuthenticated, isLoading } = useAuth(); + const router = useRouter(); - const avatars = [ - { src: "http://img.b2bpic.net/free-photo/cheerful-middle-aged-businesswoman_1262-21005.jpg", alt: "İşletme Sahibi 1" }, - { src: "http://img.b2bpic.net/free-photo/smiling-man-his-work-time-office-job_23-2149571041.jpg", alt: "İşletme Sahibi 2" }, - { src: "http://img.b2bpic.net/free-photo/medium-shot-woman-working-as-lawyer_23-2151202451.jpg", alt: "İşletme Sahibi 3" }, - { src: "http://img.b2bpic.net/free-photo/happy-afroamerican-employee-portrait_23-2148508904.jpg", alt: "İşletme Sahibi 4" }, - ]; + useEffect(() => { + if (!isLoading && !isAuthenticated) { + router.push('/login'); + } + }, [isAuthenticated, isLoading, router]); - return ( - - - - - - - ); -} \ No newline at end of file + if (isLoading) { + return
Yükleniyor...
; + } + + if (!isAuthenticated) { + return null; // Or a loading spinner, as the redirect will happen soon + } + + return ( +
+

Üretim Paneli

+

Üretim süreçlerinizi ve operasyonlarınızı buradan yönetebilirsiniz.

+

Yalnızca yetkili kullanıcılar erişebilir.

+
+ ); +} diff --git a/src/app/recipes/page.tsx b/src/app/recipes/page.tsx index f4c3cff..1f0e89b 100644 --- a/src/app/recipes/page.tsx +++ b/src/app/recipes/page.tsx @@ -1,57 +1,32 @@ "use client"; -import ReactLenis from "lenis/react"; -import NavbarLayoutFloatingInline from "@/components/navbar/NavbarLayoutFloatingInline"; -import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider"; -import HeroCentered from "@/components/sections/hero/HeroCentered"; -import { FlaskConical, ListChecks, Database, DollarSign, Clock, Wrench, BookOpen, Factory, ShoppingCart } from "lucide-react"; +import { useEffect } from 'react'; +import { useRouter } from 'next/navigation'; +import { useAuth } from '@/hooks/useAuth'; export default function RecipesPage() { - const navItems = [ - { name: "Özellikler", id: "features" }, - { name: "Üretim", id: "/production" }, - { name: "Reçeteler", id: "/recipes" }, - { name: "Fiyatlandırma", id: "pricing" }, - { name: "Hakkımızda", id: "about" }, - { name: "İletişim", id: "contact" } - ]; + const { isAuthenticated, isLoading } = useAuth(); + const router = useRouter(); - const avatars = [ - { src: "http://img.b2bpic.net/free-photo/cheerful-middle-aged-businesswoman_1262-21005.jpg", alt: "İşletme Sahibi 1" }, - { src: "http://img.b2bpic.net/free-photo/smiling-man-his-work-time-office-job_23-2149571041.jpg", alt: "İşletme Sahibi 2" }, - { src: "http://img.b2bpic.net/free-photo/medium-shot-woman-working-as-lawyer_23-2151202451.jpg", alt: "İşletme Sahibi 3" }, - { src: "http://img.b2bpic.net/free-photo/happy-afroamerican-employee-portrait_23-2148508904.jpg", alt: "İşletme Sahibi 4" }, - ]; + useEffect(() => { + if (!isLoading && !isAuthenticated) { + router.push('/login'); + } + }, [isAuthenticated, isLoading, router]); - return ( - - - - - - - ); -} \ No newline at end of file + if (isLoading) { + return
Yükleniyor...
; + } + + if (!isAuthenticated) { + return null; // Or a loading spinner, as the redirect will happen soon + } + + return ( +
+

Reçeteler Paneli

+

Ürün reçetelerinizi ve içeriklerini buradan yönetin.

+

Yalnızca yetkili kullanıcılar erişebilir.

+
+ ); +} diff --git a/src/app/reports/page.tsx b/src/app/reports/page.tsx index 0cafa2c..5efc23b 100644 --- a/src/app/reports/page.tsx +++ b/src/app/reports/page.tsx @@ -1,39 +1,32 @@ "use client"; -import React from "react"; -import ReactLenis from "lenis/react"; -import NavbarLayoutFloatingInline from "@/components/navbar/NavbarLayoutFloatingInline"; -import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider"; +import { useEffect } from 'react'; +import { useRouter } from 'next/navigation'; +import { useAuth } from '@/hooks/useAuth'; export default function ReportsPage() { - const navItems = [ - { name: "Özellikler", id: "features" }, - { name: "Fiyatlandırma", id: "pricing" }, - { name: "İzlenebilirlik", id: "traceability" }, - { name: "Günlükler", id: "/logs" }, - { name: "Hareketler", id: "/movements" }, - { name: "Raporlar", id: "/reports" }, - { name: "Hakkımızda", id: "about" }, - { name: "Varyasyonlar", id: "/product-variations" }, - { name: "Üretim", id: "/production" }, - { name: "Reçeteler", id: "/recipes" }, - { name: "Yönetim Paneli", id: "/superadmin" }, - { name: "İletişim", id: "contact" } - ]; + const { isAuthenticated, isLoading } = useAuth(); + const router = useRouter(); - return ( - - - -
-

Raporlar

-

Kapsamlı stok ve envanter raporları bu sayfada oluşturulacaktır.

-
-
-
- ); -} \ No newline at end of file + useEffect(() => { + if (!isLoading && !isAuthenticated) { + router.push('/login'); + } + }, [isAuthenticated, isLoading, router]); + + if (isLoading) { + return
Yükleniyor...
; + } + + if (!isAuthenticated) { + return null; // Or a loading spinner, as the redirect will happen soon + } + + return ( +
+

Raporlar Paneli

+

İşletmenize özel detaylı raporlara buradan ulaşabilirsiniz.

+

Yalnızca yetkili kullanıcılar erişebilir.

+
+ ); +} diff --git a/src/app/superadmin/page.tsx b/src/app/superadmin/page.tsx index 5809d52..fea1964 100644 --- a/src/app/superadmin/page.tsx +++ b/src/app/superadmin/page.tsx @@ -1,94 +1,32 @@ "use client"; -import ReactLenis from "lenis/react"; -import NavbarLayoutFloatingInline from "@/components/navbar/NavbarLayoutFloatingInline"; -import FooterBaseReveal from "@/components/sections/footer/FooterBaseReveal"; -import FeatureCardTwentyNine from "@/components/sections/feature/featureCardTwentyNine/FeatureCardTwentyNine"; -import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider"; -import { Building, Users, Settings, Key, Shield, ListChecks } from "lucide-react"; +import { useEffect } from 'react'; +import { useRouter } from 'next/navigation'; +import { useAuth } from '@/hooks/useAuth'; export default function SuperadminPage() { - const navItems = [ - { name: "Özellikler", id: "features" }, - { name: "Fiyatlandırma", id: "pricing" }, - { name: "Hakkımızda", id: "about" }, - { name: "İletişim", id: "contact" }, - { name: "Yönetim Paneli", id: "/superadmin" } - ]; + const { isAuthenticated, isLoading } = useAuth(); + const router = useRouter(); - const managementFeatures = [ - { - title: "Şirket Yönetimi", description: "Sistemdeki tüm şirket hesaplarını görüntüleyin, düzenleyin ve yönetin.", imageSrc: "https://images.unsplash.com/photo-1596526131083-ef1524376527?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w0NTYwMDR8MHwxfHNlYXJjaHw3fHxjb21wYW55JTIwbWFuYWdlbWVudHxlbnwwfHx8fDE3MTc4NTM0MTl8MA&ixlib=rb-4.0.3&q=80&w=1080", imageAlt: "Company Management", titleImageSrc: "", buttonText: "Detaylar", buttonHref: "#" - }, - { - title: "Modül Yetkilendirme", description: "Farklı özellik modüllerine erişim yetkilerini kullanıcı rolleri bazında atayın.", imageSrc: "https://images.unsplash.com/photo-1522071820081-009f0129c71c?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w0NTYwMDR8MHwxfHNlYXJjaHw3fHxleHBhbmRpbmclMjBzZXJ2aWNlc3xlbnwwfHx8fDE3MTc4NTM0Mzh8MA&ixlib=rb-4.0.3&q=80&w=1080", imageAlt: "Module Authorization", titleImageSrc: "", buttonText: "Detaylar", buttonHref: "#" - }, - { - title: "Kullanıcı Rol Yönetimi", description: "Kullanıcı rollerini (admin, çalışan, vb.) tanımlayın ve yetkilerini özelleştirin.", imageSrc: "https://images.unsplash.com/photo-1454165804606-c3d57bc86b40?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w0NTYwMDR8MHwxfHNlYXJjaHw3fHx1c2VyJTIwcm9sZXMlMjBtYW5hZ2VtZW50fGVufDB8fHx8MTcxNzg1MzQ0OHww&ixlib=rb-4.0.3&q=80&w=1080", imageAlt: "User Role Management", titleImageSrc: "", buttonText: "Detaylar", buttonHref: "#" - }, - { - title: "Sistem Ayarları", description: "Sistem çapında genel ayarları yapılandırın ve platform davranışlarını belirleyin.", imageSrc: "https://images.unsplash.com/photo-1627398242470-f47117e1893c?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3w0NTYwMDR8MHwxfHNlYXJjaHw3fHxzeXN0ZW0lMjBzZXR0aW5nc3xlbnwwfHx8fDE3MTc4NTM0NjR8MA&ixlib=rb-403&q=80&w=1080", imageAlt: "System-wide Settings", titleImageSrc: "", buttonText: "Detaylar", buttonHref: "#" - } - ]; + useEffect(() => { + if (!isLoading && !isAuthenticated) { + router.push('/login'); + } + }, [isAuthenticated, isLoading, router]); - return ( - - - -
- -
- -
-
- ); -} \ No newline at end of file + if (isLoading) { + return
Yükleniyor...
; + } + + if (!isAuthenticated) { + return null; // Or a loading spinner, as the redirect will happen soon + } + + return ( +
+

Yönetim Paneli

+

Tüm sistem ayarlarını ve kullanıcılarını buradan yönetin.

+

YALNIZCA SÜPER YÖNETİCİLER İÇİN

+
+ ); +} diff --git a/src/hooks/useAuth.ts b/src/hooks/useAuth.ts new file mode 100644 index 0000000..affce67 --- /dev/null +++ b/src/hooks/useAuth.ts @@ -0,0 +1,38 @@ +import { useState, useEffect } from 'react'; +import { useRouter } from 'next/navigation'; + +// This is a placeholder for actual authentication logic. +// In a real application, this would interact with an authentication service, +// check tokens, manage sessions, etc. +export const useAuth = () => { + const [isAuthenticated, setIsAuthenticated] = useState(false); + const [isLoading, setIsLoading] = useState(true); + const router = useRouter(); + + useEffect(() => { + // Simulate checking for a token or session + const token = localStorage.getItem('authToken'); + if (token === 'valid-token') { + setIsAuthenticated(true); + } else { + setIsAuthenticated(false); + } + setIsLoading(false); + }, []); + + const login = () => { + // Simulate successful login + localStorage.setItem('authToken', 'valid-token'); + setIsAuthenticated(true); + router.push('/dashboard'); // Redirect to dashboard after login + }; + + const logout = () => { + // Simulate logout + localStorage.removeItem('authToken'); + setIsAuthenticated(false); + router.push('/login'); // Redirect to login page after logout + }; + + return { isAuthenticated, isLoading, login, logout }; +};