Files
gridpilot.gg/apps/website/app/page.tsx
2026-01-16 01:00:03 +01:00

28 lines
945 B
TypeScript

import { PageWrapper } from '@/components/shared/state/PageWrapper';
import { HomeTemplate, type HomeViewData } from '@/templates/HomeTemplate';
import { PageDataFetcher } from '@/lib/page/PageDataFetcher';
import { HomeService } from '@/lib/services/home/HomeService'; // @server-safe
import { notFound, redirect } from 'next/navigation';
import { routes } from '@/lib/routing/RouteConfig';
export default async function Page() {
const homeService = new HomeService();
if (await homeService.shouldRedirectToDashboard()) {
redirect(routes.protected.dashboard);
}
const data = await PageDataFetcher.fetchManual(async () => {
const result = await homeService.getHomeData();
return result.isOk() ? result.unwrap() : null;
});
if (!data) {
notFound();
}
const Template = ({ data }: { data: HomeViewData }) => <HomeTemplate viewData={data} />;
return <PageWrapper data={data} Template={Template} />;
}