mirror of
https://github.com/warmbly/warmbly.git
synced 2026-08-19 00:01:14 +00:00
ab911bd9dd
Three things from the user pass: 1. /select-org workspace rows showed name + id-substring + "Open →". The id slice was opaque filler. Replaced with role (uppercase tracked), plan (when present), and a relative "joined Nd ago" timestamp. The currently-active workspace gets a sky-tinted row + "Current" pill + "Resume →" caption so it's obvious where you are when you opened the manager. 2. /select-org's inline "Create workspace" form replaced with a single dashed-border "New workspace" button that opens the same NewWorkspaceDialog the OrgSwitcher uses. The two entry points now share one component — no more "manage workspaces" leading to an input that did the same thing the OrgSwitcher dialog did, just less polished. First-time empty state (no orgs, no invites) becomes a focused single-CTA card: small workspace icon + "Create your first workspace" + a slate-900 button + a hint about invitations appearing here once sent. 3. UserNav hover background was bg-white/70 — barely visible on the cream sidebar. Matches the nav rows' bg-slate-200/40 now so the bottom user row reads as part of the same nav strip instead of a separate widget.
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