49 lines
1.5 KiB
TypeScript
49 lines
1.5 KiB
TypeScript
import { Metadata } from 'next';
|
|
import { DailyPageClient } from './DailyPageClient';
|
|
import { dailyService } from '@/services/task-management/daily';
|
|
import { DeadlineAnalyticsService } from '@/services/analytics/deadline-analytics';
|
|
import { getToday } from '@/lib/date-utils';
|
|
|
|
// Force dynamic rendering (no static generation)
|
|
export const dynamic = 'force-dynamic';
|
|
|
|
export const metadata: Metadata = {
|
|
title: 'Daily - Tower Control',
|
|
description: 'Gestion quotidienne des tâches et objectifs',
|
|
};
|
|
|
|
export default async function DailyPage() {
|
|
// Récupérer les données côté serveur
|
|
const today = getToday();
|
|
|
|
try {
|
|
const [dailyView, dailyDates, deadlineMetrics, pendingTasks] =
|
|
await Promise.all([
|
|
dailyService.getDailyView(today),
|
|
dailyService.getDailyDates(),
|
|
DeadlineAnalyticsService.getDeadlineMetrics().catch(() => null), // Graceful fallback
|
|
dailyService
|
|
.getPendingCheckboxes({
|
|
maxDays: 7,
|
|
excludeToday: true,
|
|
limit: 50,
|
|
})
|
|
.catch(() => []), // Graceful fallback
|
|
]);
|
|
|
|
return (
|
|
<DailyPageClient
|
|
initialDailyView={dailyView}
|
|
initialDailyDates={dailyDates}
|
|
initialDate={today}
|
|
initialDeadlineMetrics={deadlineMetrics}
|
|
initialPendingTasks={pendingTasks}
|
|
/>
|
|
);
|
|
} catch (error) {
|
|
console.error('Erreur SSR Daily:', error);
|
|
// Fallback vers client-side rendering
|
|
return <DailyPageClient />;
|
|
}
|
|
}
|