mirror of
https://github.com/block/buzz.git
synced 2026-08-18 06:50:31 +02:00
Move the channel intro into the virtualized row model so it only mounts when scrolled to the genuine history top, eliminating the header/list sandwich during first-load and deferred render streaming. - buildVirtualTimelineRows.ts: add optional intro row type and includeIntro option - MessageTimeline.tsx: gate introReady on deferred settle and hasOlderMessages; render via VirtualizedTimelineList - VirtualizedTimelineList.tsx: add renderIntro prop for intro row dispatch - useVirtualTimelineScroll.ts: remove introRevealed opacity-gate state - timelineSnapshot.ts: remove isAtTop helpers superseded by virtual row gating - useVirtualScrollMargin.ts: stop treating intro as above-list scroll-margin content - Add unit/DOM tests for intro row ordering, lookup, and rendering Co-authored-by: Taylor Ho <taylorkmho@gmail.com> Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
Buzz
Desktop chat shell with:
- Tauri + React + TypeScript + Vite
- Tailwind CSS
- shadcn/ui-ready shared components
- Biome (lint/format/check)
- Feature-driven frontend structure
Scripts
pnpm dev- run the web frontendpnpm tauri dev- run the desktop apppnpm build- typecheck and build frontendpnpm typecheck- TypeScript checkspnpm lint- Biome lintpnpm format- Biome format (write)pnpm check- Biome check
Structure
src/shared- reusable app-wide code (ui,lib,styles)src/features- feature modules (vertical slices)src/app- top-level app composition