import React, { useState, useEffect } from 'react'; import '../App.css'; import './AdminView.css'; import LoginForm from '../components/admin/LoginForm'; import PharmacyManagement from '../components/admin/PharmacyManagement'; import MedicineManagement from '../components/admin/MedicineManagement'; import PharmacyMedicineLink from '../components/admin/PharmacyMedicineLink'; function AdminView() { const [authenticated, setAuthenticated] = useState(false); const [user, setUser] = useState(null); const [loading, setLoading] = useState(true); const [activeTab, setActiveTab] = useState('pharmacies'); // 'pharmacies', 'medicines', 'link' useEffect(() => { checkAuth(); }, []); const checkAuth = async () => { try { const response = await fetch('/api/auth/check', { credentials: 'include', }); const data = await response.json(); if (data.authenticated) { setAuthenticated(true); setUser(data.user); } else { setAuthenticated(false); setUser(null); } } catch (error) { console.error('Error checking auth:', error); setAuthenticated(false); } finally { setLoading(false); } }; const handleLogin = (userData) => { setAuthenticated(true); setUser(userData); }; const handleLogout = async () => { try { await fetch('/api/auth/logout', { method: 'POST', credentials: 'include', }); setAuthenticated(false); setUser(null); } catch (error) { console.error('Error logging out:', error); } }; if (loading) { return (
Authentication required
Manage pharmacies and medicines