mirror of
https://github.com/warmbly/warmbly.git
synced 2026-08-23 08:00:28 +00:00
eb902aa52a
Was still using the shadcn DropdownMenu — different border + shadow, different open animation, different item heights. Stood out against every other popover in the dashboard now that OrgSwitcher moved over. Switched to PopoverMenu with side="top" (sidebar lives at the bottom, menu has to rise) and align="start". Identity block (name + email) becomes a short header inside the popover with the same hairline + shadow as the rest. Settings / Billing / Team use PopoverMenuItem with 12px icons; Log out is the danger variant so it reads as a destructive action (red text on hover) without needing its own treatment. That's the whole dashboard on one popover primitive now — folders, sort, accounts, schedule, org switcher, user menu — same micro- animation, same surface.
Warmbly Web App
React + TypeScript frontend for Warmbly.
Stack
- React 19
- Vite (Rolldown)
- TypeScript
- TanStack Query
- Zustand
- Tailwind CSS 4
Prerequisites
- Node.js 20+
- pnpm 10+
Setup
cd web
pnpm install
cp .env.example .env
Run
pnpm dev
Default dev URL: http://localhost:5173
Quality Checks
pnpm lint
pnpm test:run
pnpm build
Project Layout
src/approute pages and layoutssrc/componentsUI and feature componentssrc/lib/apiAPI clients, hooks, and modelssrc/storesZustand store slices