feat(navegacao): adiciona atalhos financeiros e seletor mensal

This commit is contained in:
Felipe Coutinho
2026-05-31 15:18:19 -03:00
parent 41eecc2538
commit 02ee5bb758
10 changed files with 445 additions and 65 deletions

View File

@@ -1,10 +1,12 @@
import { connection } from "next/server";
import { fetchDashboardNavbarData } from "@/features/dashboard/lib/navbar-queries";
import { AppNavbar } from "@/shared/components/navigation/navbar/app-navbar";
import { AppPreferencesProvider } from "@/shared/components/providers/app-preferences-provider";
import { LogoDevProvider } from "@/shared/components/providers/logo-dev-provider";
import { PrivacyProvider } from "@/shared/components/providers/privacy-provider";
import { getUserSession } from "@/shared/lib/auth/server";
import { isLogoDevEnabled } from "@/shared/lib/logo/server";
import { fetchAppPreferences } from "@/shared/lib/preferences/queries";
export default async function DashboardLayout({
children,
@@ -13,26 +15,32 @@ export default async function DashboardLayout({
}>) {
await connection();
const session = await getUserSession();
const navbarData = await fetchDashboardNavbarData(session.user.id);
const [navbarData, appPreferences] = await Promise.all([
fetchDashboardNavbarData(session.user.id),
fetchAppPreferences(session.user.id),
]);
const logoDevEnabled = isLogoDevEnabled();
return (
<LogoDevProvider enabled={logoDevEnabled}>
<PrivacyProvider>
<AppNavbar
user={{ ...session.user, image: session.user.image ?? null }}
payerAvatarUrl={navbarData.payerAvatarUrl}
inboxPendingCount={navbarData.inboxPendingCount}
notificationsSnapshot={navbarData.notificationsSnapshot}
/>
<div className="relative flex flex-1 flex-col pt-16">
<div className="@container/main flex flex-1 flex-col gap-2">
<div className="flex flex-col gap-4 py-5 md:gap-6 w-full max-w-8xl mx-auto px-4 ">
{children}
<AppPreferencesProvider {...appPreferences}>
<PrivacyProvider>
<AppNavbar
user={{ ...session.user, image: session.user.image ?? null }}
payerAvatarUrl={navbarData.payerAvatarUrl}
inboxPendingCount={navbarData.inboxPendingCount}
notificationsSnapshot={navbarData.notificationsSnapshot}
financeLinks={navbarData.financeLinks}
/>
<div className="relative flex flex-1 flex-col pt-16">
<div className="@container/main flex flex-1 flex-col gap-2">
<div className="flex flex-col gap-4 py-5 md:gap-6 w-full max-w-8xl mx-auto px-4 ">
{children}
</div>
</div>
</div>
</div>
</PrivacyProvider>
</PrivacyProvider>
</AppPreferencesProvider>
</LogoDevProvider>
);
}