forked from git.gladyson/openmonetis
Adiciona sistema completo de preferências de usuário: - Cria tabela userPreferences no schema com campos disableMagnetlines, periodMonthsBefore e periodMonthsAfter - Implementa página de Ajustes com abas (Preferências, Alterar nome, Senha, E-mail, Deletar conta) - Adiciona componente PreferencesForm para configuração de magnetlines e períodos de exibição - Propaga periodPreferences para todos os componentes de lançamentos e calendário Refatora sistema de changelog: - Remove implementação anterior baseada em JSON estático - Adiciona nova página de changelog dinâmica em app/(dashboard)/changelog - Adiciona componente changelog-list.tsx - Remove arquivos obsoletos (changelog-notification, actions, data, utils, scripts) Adiciona controle de saldo inicial em contas: - Novo campo excludeInitialBalanceFromIncome em contas - Permite excluir saldo inicial do cálculo de receitas - Atualiza queries de lançamentos para respeitar esta configuração Melhorias adicionais: - Adiciona componente ui/accordion.tsx do shadcn/ui - Refatora formatPeriodLabel para displayPeriod centralizado - Propaga estabelecimentos para componentes de lançamentos - Remove variável DB_PROVIDER obsoleta do .env.example e documentação - Adiciona 6 migrações de banco de dados (0003-0008)
38 lines
1.5 KiB
TypeScript
38 lines
1.5 KiB
TypeScript
import { FeedbackDialog } from "@/components/feedback/feedback-dialog";
|
|
import { NotificationBell } from "@/components/notificacoes/notification-bell";
|
|
import { SidebarTrigger } from "@/components/ui/sidebar";
|
|
import { getUser } from "@/lib/auth/server";
|
|
import type { DashboardNotificationsSnapshot } from "@/lib/dashboard/notifications";
|
|
import { AnimatedThemeToggler } from "./animated-theme-toggler";
|
|
import LogoutButton from "./auth/logout-button";
|
|
import { CalculatorDialogButton } from "./calculadora/calculator-dialog";
|
|
import { PrivacyModeToggle } from "./privacy-mode-toggle";
|
|
|
|
type SiteHeaderProps = {
|
|
notificationsSnapshot: DashboardNotificationsSnapshot;
|
|
};
|
|
|
|
export async function SiteHeader({ notificationsSnapshot }: SiteHeaderProps) {
|
|
const user = await getUser();
|
|
|
|
return (
|
|
<header className="border-b flex h-12 shrink-0 items-center gap-2 transition-[width,height] ease-linear group-has-data-[collapsible=icon]/sidebar-wrapper:h-12">
|
|
<div className="flex w-full items-center gap-1 px-4 lg:gap-2 lg:px-6">
|
|
<SidebarTrigger className="-ml-1" />
|
|
<div className="ml-auto flex items-center gap-2">
|
|
<NotificationBell
|
|
notifications={notificationsSnapshot.notifications}
|
|
totalCount={notificationsSnapshot.totalCount}
|
|
/>
|
|
<CalculatorDialogButton withTooltip />
|
|
<PrivacyModeToggle />
|
|
<AnimatedThemeToggler />
|
|
<span className="text-muted-foreground">|</span>
|
|
<FeedbackDialog />
|
|
<LogoutButton />
|
|
</div>
|
|
</div>
|
|
</header>
|
|
);
|
|
}
|