mirror of
https://github.com/spacedriveapp/spacedrive.git
synced 2026-11-01 13:00:23 -05:00
Spacebot ships separately. This drops its UI, the voice overlay and the Alt+Space shortcut that opened it, the spacebot app config and window, the @spacebot/api-client and @spacedrive/ai wiring, and the Spacebot and Console design docs. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
1.9 KiB
1.9 KiB
Popover Refactor: Wrapped → Radix Composable
The Problem
5 files use the old wrapped Popover API:
<Popover popover={popover} trigger={<button>...</button>} side="top" className="...">
{children}
</Popover>
Popover is now a Radix composable object from @spacedrive/primitives, not a function component. Every usage must be converted.
The Pattern
Before:
import { Popover, usePopover } from "@spacedrive/primitives";
const popover = usePopover();
<Popover
popover={popover}
trigger={<button>Open</button>}
side="top"
align="start"
sideOffset={8}
className="w-[300px]"
>
{children}
</Popover>
After:
import { Popover, usePopover } from "@spacedrive/primitives";
const popover = usePopover();
<Popover.Root open={popover.open} onOpenChange={popover.setOpen}>
<Popover.Trigger asChild>
<button>Open</button>
</Popover.Trigger>
<Popover.Content side="top" align="start" sideOffset={8} className="w-[300px]">
{children}
</Popover.Content>
</Popover.Root>
Rules
popover={popover}→open={popover.open} onOpenChange={popover.setOpen}onPopover.Roottrigger={<Component />}→ wrap in<Popover.Trigger asChild><Component /></Popover.Trigger>side,align,sideOffset,alignOffset,classNamemove to<Popover.Content>- Children of the old
<Popover>become children of<Popover.Content> - Keep
usePopover(). It still works
Files to Refactor
packages/interface/src/routes/explorer/components/PathBar.tsxpackages/interface/src/routes/overview/OverviewTopBar.tsxpackages/interface/src/components/SyncMonitor/SyncMonitorPopover.tsxpackages/interface/src/components/JobManager/JobManagerPopover.tsxpackages/interface/src/components/Tags/TagSelector.tsx
Search for <Popover followed by popover= in each file and apply the pattern above.