perf(dashboard): usar Promise.all para fetching paralelo de dados

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Felipe Coutinho
2026-01-17 16:56:05 +00:00
parent 6b033c79eb
commit fc7083d95e

View File

@@ -29,25 +29,22 @@ export default async function Page({ searchParams }: PageProps) {
const periodoParam = getSingleParam(resolvedSearchParams, "periodo"); const periodoParam = getSingleParam(resolvedSearchParams, "periodo");
const { period: selectedPeriod } = parsePeriodParam(periodoParam); const { period: selectedPeriod } = parsePeriodParam(periodoParam);
const data = await fetchDashboardData(user.id, selectedPeriod); const [data, preferencesResult] = await Promise.all([
fetchDashboardData(user.id, selectedPeriod),
// Buscar preferências do usuário db
const preferencesResult = await db
.select({ .select({
disableMagnetlines: schema.userPreferences.disableMagnetlines, disableMagnetlines: schema.userPreferences.disableMagnetlines,
}) })
.from(schema.userPreferences) .from(schema.userPreferences)
.where(eq(schema.userPreferences.userId, user.id)) .where(eq(schema.userPreferences.userId, user.id))
.limit(1); .limit(1),
]);
const disableMagnetlines = preferencesResult[0]?.disableMagnetlines ?? false; const disableMagnetlines = preferencesResult[0]?.disableMagnetlines ?? false;
return ( return (
<main className="flex flex-col gap-4 px-6"> <main className="flex flex-col gap-4 px-6">
<DashboardWelcome <DashboardWelcome name={user.name} disableMagnetlines={disableMagnetlines} />
name={user.name}
disableMagnetlines={disableMagnetlines}
/>
<MonthNavigation /> <MonthNavigation />
<SectionCards metrics={data.metrics} /> <SectionCards metrics={data.metrics} />
<DashboardGrid data={data} period={selectedPeriod} /> <DashboardGrid data={data} period={selectedPeriod} />