diff --git a/app/admin/page.tsx b/app/admin/page.tsx index 54e894c..211f5df 100644 --- a/app/admin/page.tsx +++ b/app/admin/page.tsx @@ -4,17 +4,19 @@ import { useState, useEffect } from 'react'; import { Card, Portal } from '@/types'; export default function AdminDashboard() { + console.log('[ADMIN] Component rendering'); + const [activeTab, setActiveTab] = useState<'cards' | 'settings'>('cards'); - + // Card State const [cards, setCards] = useState([]); const [isEditing, setIsEditing] = useState | null>(null); - + // Portal State const [portal, setPortal] = useState>({}); const [savingPortal, setSavingPortal] = useState(false); const [uploading, setUploading] = useState<{ [key: string]: boolean }>({}); - + // NEW UI STATES: Toast and Confirm Dialog const [toast, setToast] = useState(null); const [confirmDialog, setConfirmDialog] = useState<{ message: string, onConfirm: () => void } | null>(null); @@ -24,10 +26,17 @@ export default function AdminDashboard() { setToast(message); setTimeout(() => setToast(null), 3000); }; - + useEffect(() => { - fetch('/api/cards').then(res => res.json()).then(setCards); - fetch('/api/portals').then(res => res.json()).then(data => data && setPortal(data)); + console.log('[ADMIN] useEffect fired - fetching data'); + fetch('/api/cards') + .then(res => { console.log('[ADMIN] /api/cards status:', res.status); return res.json(); }) + .then(data => { console.log('[ADMIN] cards received:', data); setCards(data); }) + .catch(err => console.error('[ADMIN] cards fetch error:', err)); + fetch('/api/portals') + .then(res => { console.log('[ADMIN] /api/portals status:', res.status); return res.json(); }) + .then(data => { console.log('[ADMIN] portal received:', data); if (data) setPortal(data); }) + .catch(err => console.error('[ADMIN] portal fetch error:', err)); }, []); const handleUpload = async (e: React.ChangeEvent, field: string, isPortal = false) => { @@ -163,10 +172,10 @@ export default function AdminDashboard() {
{/* Tab Navigation */}
- -