From fcf2e0e639850b7e1a41b93d8eafd3c08b1e2d69 Mon Sep 17 00:00:00 2001 From: Alexander Brown Date: Wed, 21 Jan 2026 11:48:22 -0800 Subject: [PATCH] feat: add badge support to NavItem component (#8207) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Summary Adds optional badge support to the `NavItem` component and `NavItemData` interface, enabling navigation items in the left sidebar of the Asset Browser Modal to display counts or status indicators. ## Changes - **`src/types/navTypes.ts`**: Added optional `badge?: string | number` property to `NavItemData` interface - **`src/components/widget/nav/NavItem.vue`**: Added `StatusBadge` rendering when `badge` prop is provided - **`src/components/widget/panel/LeftSidePanel.vue`**: Wired `badge` prop from `NavItemData` to `NavItem` for both grouped and ungrouped items ## Usage ```ts const navItem: NavItemData = { id: 'assets', label: 'Assets', icon: 'pi pi-folder', badge: 5 // Optional - displays count badge } ``` ## Related - Builds on #8170 which added queue badge functionality ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-8207-feat-add-badge-support-to-NavItem-component-2ef6d73d365081669f86fe2fc618e87f) by [Unito](https://www.unito.io) --- src/components/widget/nav/NavItem.vue | 19 +++++++++++++------ src/components/widget/panel/LeftSidePanel.vue | 2 ++ src/types/navTypes.ts | 1 + 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/src/components/widget/nav/NavItem.vue b/src/components/widget/nav/NavItem.vue index 8c20ad929..eb20b9852 100644 --- a/src/components/widget/nav/NavItem.vue +++ b/src/components/widget/nav/NavItem.vue @@ -5,7 +5,7 @@ disabled: !isOverflowing, pt: { text: { class: 'whitespace-nowrap' } } }" - class="flex cursor-pointer items-start gap-2 rounded-md px-4 py-3 text-sm transition-colors text-base-foreground" + class="flex cursor-pointer items-center-safe gap-2 rounded-md px-4 py-3 text-sm transition-colors text-base-foreground" :class=" active ? 'bg-interface-menu-component-surface-selected' @@ -15,25 +15,32 @@ @mouseenter="checkOverflow" @click="onClick" > -
- -
+ - + +