Files
gridpilot.gg/apps/website/components/admin/AdminDashboardWrapper.tsx
2026-01-14 23:46:04 +01:00

32 lines
912 B
TypeScript

'use client';
import { useState, useCallback } from 'react';
import { useRouter } from 'next/navigation';
import { AdminDashboardTemplate } from '@/templates/AdminDashboardTemplate';
import { AdminDashboardViewData } from '@/lib/view-data/AdminDashboardViewData';
interface AdminDashboardWrapperProps {
initialViewData: AdminDashboardViewData;
}
export function AdminDashboardWrapper({ initialViewData }: AdminDashboardWrapperProps) {
const router = useRouter();
// UI state (not business logic)
const [loading, setLoading] = useState(false);
const handleRefresh = useCallback(() => {
setLoading(true);
router.refresh();
// Reset loading after a short delay to show the spinner
setTimeout(() => setLoading(false), 1000);
}, [router]);
return (
<AdminDashboardTemplate
viewData={initialViewData}
onRefresh={handleRefresh}
isLoading={loading}
/>
);
}