From 9cb6593186ded09ebb5c8fc421fe96dca3aca7a0 Mon Sep 17 00:00:00 2001 From: Felipe Coutinho Date: Tue, 24 Feb 2026 16:07:34 +0000 Subject: [PATCH] =?UTF-8?q?feat:=20changelog=20como=20p=C3=A1gina=20pr?= =?UTF-8?q?=C3=B3pria,=20vers=C3=A3o=201.7.1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Remove aba Changelog de Ajustes; cria página em /changelog - Adiciona link para /changelog no menu do usuário com versão ao lado - Data do changelog formatada como dd/mm/aaaa - Limpa formatação ** do CHANGELOG.md - Bump de versão para 1.7.1 Co-Authored-By: Claude Sonnet 4.6 --- CHANGELOG.md | 24 +++++++++++++----------- app/(dashboard)/ajustes/page.tsx | 12 +----------- app/(dashboard)/changelog/layout.tsx | 23 +++++++++++++++++++++++ app/(dashboard)/changelog/page.tsx | 12 ++++++++++++ components/topbar/topbar-user.tsx | 17 +++++++++++------ lib/changelog/parse-changelog.ts | 3 ++- package.json | 2 +- 7 files changed, 63 insertions(+), 30 deletions(-) create mode 100644 app/(dashboard)/changelog/layout.tsx create mode 100644 app/(dashboard)/changelog/page.tsx diff --git a/CHANGELOG.md b/CHANGELOG.md index dfd5fb0..e6d3e88 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,26 +5,28 @@ Todas as mudanças notáveis deste projeto serão documentadas neste arquivo. O formato é baseado em [Keep a Changelog](https://keepachangelog.com/pt-BR/1.1.0/), e este projeto adere ao [Versionamento Semântico](https://semver.org/lang/pt-BR/). -## [1.7.0] - 2026-02-24 +## [1.7.1] - 2026-02-24 ### Adicionado -- **Topbar de navegação** como experimento: substitui o header fixo por uma topbar com backdrop blur (`bg-card/80`), agrupando os links de navegação em 5 grupos lógicos (Dashboard, Lançamentos, Cartões, Relatórios, Ferramentas) -- **Dropdown "Ferramentas"** na topbar: consolida calculadora e modo privacidade em um único menu (`components/topbar/ferramentas-dropdown.tsx`) -- **NotificationBell expandida**: passa a exibir notificações de orçamentos estourados e pré-lançamentos pendentes além das notificações gerais, com seções separadas por tipo e contagem agregada +- Topbar de navegação substituindo o header fixo: backdrop blur, links agrupados em 5 seções (Dashboard, Lançamentos, Cartões, Relatórios, Ferramentas) +- Dropdown Ferramentas na topbar consolidando calculadora e modo privacidade +- Sino de notificações expandido: exibe orçamentos estourados e pré-lançamentos pendentes com seções separadas e contagem agregada +- Página dedicada de changelog em `/changelog` +- Link para o changelog no menu do usuário com versão exibida ao lado ### Alterado -- **Logo** refatorado com variante `compact` usada na topbar -- **TopbarUser**: incorpora o botão de logout (antes em `logout-button.tsx` separado) -- **Topbar**: links em lowercase; layout centralizado em `max-w-8xl`; `radix-ui ^1.4.3` adicionado como dependência -- **Gráfico de relatório de categorias** (`category-report-chart`): refatoração interna +- Logo refatorado com variante compacta para uso na topbar +- Menu do usuário incorpora o botão de logout e link para ajustes +- Links da topbar em lowercase; layout centralizado em max-w-8xl +- Data no changelog exibida no formato dd/mm/aaaa ### Removido -- `components/header-dashboard.tsx` — substituído pela topbar -- `components/auth/logout-button.tsx` — lógica incorporada ao `TopbarUser` -- `components/privacy-mode-toggle.tsx` — movido para o `FerramentasDropdown` +- Header lateral substituído pela topbar +- Aba Changelog removida de Ajustes (agora é página própria) +- Componentes separados de logout e modo privacidade (incorporados à topbar) ## [1.6.3] - 2026-02-19 diff --git a/app/(dashboard)/ajustes/page.tsx b/app/(dashboard)/ajustes/page.tsx index 376cdf2..4eb846e 100644 --- a/app/(dashboard)/ajustes/page.tsx +++ b/app/(dashboard)/ajustes/page.tsx @@ -2,7 +2,6 @@ import { RiArrowRightSLine } from "@remixicon/react"; import { headers } from "next/headers"; import { redirect } from "next/navigation"; -import { ChangelogTab } from "@/components/ajustes/changelog-tab"; import { CompanionTab } from "@/components/ajustes/companion-tab"; import { DeleteAccountForm } from "@/components/ajustes/delete-account-form"; import { PreferencesForm } from "@/components/ajustes/preferences-form"; @@ -12,8 +11,6 @@ import { UpdatePasswordForm } from "@/components/ajustes/update-password-form"; import { Card } from "@/components/ui/card"; import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; import { auth } from "@/lib/auth/config"; -import { parseChangelog } from "@/lib/changelog/parse-changelog"; - import { fetchAjustesPageData } from "./data"; export default async function Page() { @@ -31,8 +28,6 @@ export default async function Page() { const { authProvider, userPreferences, userApiTokens } = await fetchAjustesPageData(session.user.id); - const changelogVersions = parseChangelog(); - return (
@@ -45,14 +40,13 @@ export default async function Page() { Alterar nome Alterar senha Alterar e-mail - Changelog Deletar conta
@@ -139,10 +133,6 @@ export default async function Page() { - - - -
diff --git a/app/(dashboard)/changelog/layout.tsx b/app/(dashboard)/changelog/layout.tsx new file mode 100644 index 0000000..0f86c00 --- /dev/null +++ b/app/(dashboard)/changelog/layout.tsx @@ -0,0 +1,23 @@ +import { RiHistoryLine } from "@remixicon/react"; +import PageDescription from "@/components/page-description"; + +export const metadata = { + title: "Cartões | OpenMonetis", +}; + +export default function RootLayout({ + children, +}: { + children: React.ReactNode; +}) { + return ( +
+ } + title="Changelog" + subtitle="Acompanhe todas as alterações feitas na plataforma." + /> + {children} +
+ ); +} diff --git a/app/(dashboard)/changelog/page.tsx b/app/(dashboard)/changelog/page.tsx new file mode 100644 index 0000000..bbc8d46 --- /dev/null +++ b/app/(dashboard)/changelog/page.tsx @@ -0,0 +1,12 @@ +import { ChangelogTab } from "@/components/ajustes/changelog-tab"; +import { parseChangelog } from "@/lib/changelog/parse-changelog"; + +export default function ChangelogPage() { + const versions = parseChangelog(); + + return ( +
+ +
+ ); +} diff --git a/components/topbar/topbar-user.tsx b/components/topbar/topbar-user.tsx index 7d4fa89..2e253a4 100644 --- a/components/topbar/topbar-user.tsx +++ b/components/topbar/topbar-user.tsx @@ -1,6 +1,7 @@ "use client"; import { + RiHistoryLine, RiLogoutCircleLine, RiMessageLine, RiSettings2Line, @@ -23,6 +24,7 @@ import { authClient } from "@/lib/auth/client"; import { getAvatarSrc } from "@/lib/pagadores/utils"; import { cn } from "@/lib/utils/ui"; import { version } from "@/package.json"; +import { Badge } from "../ui/badge"; const itemClass = "flex w-full items-center gap-2 rounded-sm px-2 py-1.5 text-sm transition-colors hover:bg-accent"; @@ -100,6 +102,15 @@ export function TopbarUser({ user, pagadorAvatarUrl }: TopbarUserProps) { Ajustes + + + Changelog + v{version} + +
- -
- - Versão {version} - -
setFeedbackOpen(false)} /> diff --git a/lib/changelog/parse-changelog.ts b/lib/changelog/parse-changelog.ts index 57d60da..0affd8b 100644 --- a/lib/changelog/parse-changelog.ts +++ b/lib/changelog/parse-changelog.ts @@ -29,9 +29,10 @@ export function parseChangelog(): ChangelogVersion[] { if (currentSection && currentVersion) { currentVersion.sections.push(currentSection); } + const [y, m, d] = versionMatch[2].split("-"); currentVersion = { version: versionMatch[1], - date: versionMatch[2], + date: d && m && y ? `${d}/${m}/${y}` : versionMatch[2], sections: [], }; versions.push(currentVersion); diff --git a/package.json b/package.json index a3dd813..3ec2286 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "openmonetis", - "version": "1.6.3", + "version": "1.7.1", "private": true, "scripts": { "dev": "next dev --turbopack",