From 7e3a04c76c71d11784d6a0929b8e2580b35623d1 Mon Sep 17 00:00:00 2001 From: gsxdsm Date: Sat, 14 Mar 2026 14:19:32 -0700 Subject: [PATCH] Refactor BreadcrumbBar to use useMemo for global toolbar slot context and improve rendering logic --- ui/src/components/BreadcrumbBar.tsx | 37 +++++++++++++++++++---------- 1 file changed, 24 insertions(+), 13 deletions(-) diff --git a/ui/src/components/BreadcrumbBar.tsx b/ui/src/components/BreadcrumbBar.tsx index c4523d9f..6f1f9bbf 100644 --- a/ui/src/components/BreadcrumbBar.tsx +++ b/ui/src/components/BreadcrumbBar.tsx @@ -12,7 +12,7 @@ import { BreadcrumbPage, BreadcrumbSeparator, } from "@/components/ui/breadcrumb"; -import { Fragment } from "react"; +import { Fragment, useMemo } from "react"; import { PluginSlotOutlet } from "@/plugins/slots"; export function BreadcrumbBar() { @@ -20,7 +20,29 @@ export function BreadcrumbBar() { const { toggleSidebar, isMobile } = useSidebar(); const { selectedCompanyId, selectedCompany } = useCompany(); - if (breadcrumbs.length === 0) return null; + const globalToolbarSlotContext = useMemo( + () => ({ + companyId: selectedCompanyId ?? null, + companyPrefix: selectedCompany?.issuePrefix ?? null, + }), + [selectedCompanyId, selectedCompany?.issuePrefix], + ); + + const globalToolbarSlots = ( + + ); + + if (breadcrumbs.length === 0) { + return ( +
+ {globalToolbarSlots} +
+ ); + } const menuButton = isMobile && (