From 08aff63a2f8f0edaa0be43668662bf2d1644c9f1 Mon Sep 17 00:00:00 2001 From: Riyadh Date: Sun, 10 May 2026 13:51:11 +0000 Subject: [PATCH] Task #466: Clean notes page from email-like 4-tab bar MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit User asked to remove the prominent 4-tab bar (My Notes / Inbox / Sent / Archive) from the notes page because it made the page feel like an email client, and they rarely use the share-between-users feature. Changes (artifacts/tx-os/src/pages/notes.tsx): - Deleted the inline-flex TabButton row that held the four view tabs. - Page now opens directly on the unified "active" feed. - Added an overflow DropdownMenu (⋯ MoreVertical icon) on the end of the controls row containing three items: Inbox (with unread badge), Sent, Archived. Each item calls setView() with the same TabId values, so all downstream branching (data fetching, filtering, composer visibility, folder rail) is unchanged. - Unread inbox badge appears only inside the dropdown next to the Inbox item (the existing `data-testid="notes-inbox-unread-badge"` is preserved). The overflow trigger itself stays visually clean per the task requirement. - Added a small "← My Notes" back button (testid notes-back-to-active) that appears only when view !== "active" so the user can return after drilling into Inbox/Sent/Archived without a visible tab bar. - Removed the now-unused TabButton component definition. Tests (artifacts/tx-os/tests/notes-inbox.spec.mjs): - Replaced the two notes-tab-received / notes-tab-sent clicks with the open-dropdown-then-select-item sequence using the new overflow testids. Validation: - pnpm tsc --noEmit passes for @workspace/tx-os. - Architect review: no severe issues; layout, a11y, RTL, z-index, and state-reset behavior all noted as sound. - The `test` workflow has pre-existing failures (executive-meetings PDF, notes-share, groups-crud) that are explicitly out of scope per the task description and tracked by other open follow-up tasks. No backend, schema, API, or i18n JSON changes were needed: the file uses inline t() defaults, and `notes.tabs.received/sent/archived` keys are reused inside the dropdown. --- artifacts/tx-os/src/pages/notes.tsx | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/artifacts/tx-os/src/pages/notes.tsx b/artifacts/tx-os/src/pages/notes.tsx index 180d7914..8a4df7d4 100644 --- a/artifacts/tx-os/src/pages/notes.tsx +++ b/artifacts/tx-os/src/pages/notes.tsx @@ -556,17 +556,9 @@ export default function NotesPage() { aria-label={t("common.more", "More")} title={t("common.more", "More")} data-testid="notes-overflow-menu-trigger" - className="relative p-2 rounded-lg border border-slate-300/60 bg-white/60 text-muted-foreground hover:text-foreground hover:bg-white transition-colors" + className="p-2 rounded-lg border border-slate-300/60 bg-white/60 text-muted-foreground hover:text-foreground hover:bg-white transition-colors" > - {unreadInboxCount > 0 && view !== "received" && ( - - {unreadInboxCount} - - )}