'use client'; import { createContext, useContext, useEffect, useState, ReactNode } from 'react'; import { getCurrentUser } from '@/lib/api'; interface UserContextType { userId: string | null; user: any | null; loading: boolean; refetch: () => Promise; } const UserContext = createContext(undefined); export function useUser() { const context = useContext(UserContext); if (context === undefined) { throw new Error('useUser must be used within a UserProvider'); } return context; } export default function UserProvider({ children }: { children: ReactNode }) { const [user, setUser] = useState(null); const [userId, setUserId] = useState(null); const [loading, setLoading] = useState(true); const fetchUser = async () => { try { setLoading(true); const userData = await getCurrentUser(); if (userData) { setUser(userData); setUserId(userData.id); } else { setUser(null); setUserId(null); } } catch (error) { console.error('Error fetching user:', error); setUser(null); setUserId(null); } finally { setLoading(false); } }; useEffect(() => { fetchUser(); }, []); return ( {children} ); }