diff --git a/apps/desktop/src/app/contrib/controller.tsx b/apps/desktop/src/app/contrib/controller.tsx index 5edd193dbca2..26155923e1f6 100644 --- a/apps/desktop/src/app/contrib/controller.tsx +++ b/apps/desktop/src/app/contrib/controller.tsx @@ -31,6 +31,7 @@ import { import { SidebarProvider } from '@/components/ui/sidebar' import { discoverBundledPlugins } from '@/contrib/plugins' import { Slot } from '@/contrib/react/slot' +import { useContributions } from '@/contrib/react/use-contributions' import { registry } from '@/contrib/registry' import { discoverRuntimePlugins } from '@/contrib/runtime-loader' import { sessionTitle as storedSessionTitle } from '@/lib/chat-runtime' @@ -600,6 +601,26 @@ $filePreviewTarget.listen(target => target && revealPreview()) // --------------------------------------------------------------------------- +interface TitlebarSlotProps { + area: 'titleBar.center' | 'titleBar.left' | 'titleBar.right' + className: string + style?: CSSProperties +} + +function TitlebarSlot({ area, className, style }: TitlebarSlotProps) { + const items = useContributions(area) + + if (items.length === 0) { + return null + } + + return ( +