import { DashboardGridEditable } from "@/components/dashboard/dashboard-grid-editable"; import { DashboardWelcome } from "@/components/dashboard/dashboard-welcome"; import { SectionCards } from "@/components/dashboard/section-cards"; import MonthNavigation from "@/components/month-picker/month-navigation"; import { getUser } from "@/lib/auth/server"; import { fetchDashboardData } from "@/lib/dashboard/fetch-dashboard-data"; import { db, schema } from "@/lib/db"; import { parsePeriodParam } from "@/lib/utils/period"; import { eq } from "drizzle-orm"; type PageSearchParams = Promise>; type PageProps = { searchParams?: PageSearchParams; }; const getSingleParam = ( params: Record | undefined, key: string, ) => { const value = params?.[key]; if (!value) return null; return Array.isArray(value) ? (value[0] ?? null) : value; }; export default async function Page({ searchParams }: PageProps) { const user = await getUser(); const resolvedSearchParams = searchParams ? await searchParams : undefined; const periodoParam = getSingleParam(resolvedSearchParams, "periodo"); const { period: selectedPeriod } = parsePeriodParam(periodoParam); const [data, preferencesResult] = await Promise.all([ fetchDashboardData(user.id, selectedPeriod), db .select({ disableMagnetlines: schema.userPreferences.disableMagnetlines, dashboardWidgets: schema.userPreferences.dashboardWidgets, }) .from(schema.userPreferences) .where(eq(schema.userPreferences.userId, user.id)) .limit(1), ]); const disableMagnetlines = preferencesResult[0]?.disableMagnetlines ?? false; const dashboardWidgets = preferencesResult[0]?.dashboardWidgets ?? null; return (
); }