"use client"; import React, { useState, useEffect } from 'react'; import Link from 'next/link'; import { LayoutDashboard, Edit3, ShoppingBag, CreditCard, LogOut, Eye } from 'lucide-react'; import { useRouter } from 'next/navigation'; import { User } from '../../types'; import { MOCK_BUSINESSES } from '../../lib/mockData'; import DashboardOverview from '../../components/dashboard/DashboardOverview'; import DashboardProfile from '../../components/dashboard/DashboardProfile'; import DashboardOffers from '../../components/dashboard/DashboardOffers'; import PricingSection from '../../components/PricingSection'; import { useUser } from '../../components/UserProvider'; const DashboardPage = () => { const { user, logout } = useUser(); const router = useRouter(); const [currentView, setCurrentView] = useState<'overview' | 'profile' | 'offers' | 'subscription'>('overview'); const [business, setBusiness] = useState(null); const [loading, setLoading] = useState(true); const [isMounted, setIsMounted] = useState(false); useEffect(() => { setIsMounted(true); }, []); // Fetch user's business useEffect(() => { if (!user || !isMounted) return; const fetchBusiness = async () => { try { const res = await fetch('/api/businesses/me', { headers: { 'x-user-id': user.id } }); const data = await res.json(); if (data && !data.error) { setBusiness(data); } } catch (error) { console.error('Error fetching dashboard business:', error); } finally { setLoading(false); } }; fetchBusiness(); }, [user, isMounted]); if (!isMounted) return null; if (!user) { if (typeof window !== 'undefined') router.push('/login'); return null; } if (loading) { return (

Chargement de votre espace...

); } // Default business structure for new users const displayBusiness = business || { id: 'new', name: "Ma Boutique", category: "Technologie & IT", location: "Ma Ville", description: "Décrivez votre entreprise ici...", logoUrl: "https://picsum.photos/200/200?random=default", contactEmail: user?.email || "", contactPhone: "", tags: [], socialLinks: {}, verified: false, viewCount: 0, rating: 0, offers: [] }; return (
{/* 1. Sidebar */}
A
Afropreunariat
{user.name.charAt(0)}

{user.name}

Actif
{/* 2. Main Content */}

{currentView === 'overview' && 'Vue d\'ensemble'} {currentView === 'profile' && 'Mon Profil'} {currentView === 'offers' && 'Gestion des Offres'} {currentView === 'subscription' && 'Mon Abonnement'}

Voir ma fiche
{currentView === 'overview' && } {currentView === 'profile' && } {currentView === 'offers' && } {currentView === 'subscription' && (

Abonnement Actuel : Starter (Gratuit)

Passez au niveau supérieur pour débloquer plus de fonctionnalités.

Actif
)}
); } export default DashboardPage;