mirror of
https://github.com/block/buzz.git
synced 2026-08-18 06:50:31 +02:00
Split the backup step's in-place download view into its own page in the machine onboarding flow, with its own progress dot, slide transition, and footer. The chooser keeps the masked-key card; "Backup your key" (primary CTA) now navigates forward instead of swapping views, with a delayed fade-in ghost "Skip for now" beside it and a Settings hint below. - DownloadKeyStep.tsx (new): "Backup your key" page — title + encryption explainer, shell box + closing brackets animating in on mount (replaces the card→box layoutId morph, which can't span two pages), textured card hosting EncryptedBackupCreator, and a footer whose primary slot holds the portaled "Encrypt and download" button until the payload exists, then a primary "Next" that continues to setup - BackupStep.tsx: reduced to the chooser; removed view state, ShellBracket, BackToOptions, and the morph; new onDownload prop; footer reworked to a centered primary CTA with an absolutely-positioned "Skip for now" that fades in after 1s (animation-delay/duration arbitrary properties so the hover transition isn't delayed) and a Settings → Profile → Identity hint - EncryptedBackupCreator.tsx: new opt-in createButtonPortal / createButtonClassName / onCreated props so onboarding can relocate the create button into its footer (undefined = inline for Settings; null = slot not mounted yet, render nothing to avoid an inline flash) - MachineOnboardingFlow.tsx: new "download" page between backup and setup (Back → backup, Next → setup); progress indices shifted (download=3, setup=4, config=5) - OnboardingChrome.tsx: TOTAL_ONBOARDING_PAGES 7 → 8; WelcomeSetup 5→6 and CommunityOnboardingFlow 6→7/7→8 dot positions bumped to match - SetupStep.tsx: same footer treatment — centered Next with a no-background "Skip for now" hanging off its right edge, fading in after 1s - tests: passThroughBackupStep helper now skips from the chooser; onboarding-backup.spec.ts covers the new page (create button absent from footer until encryption, Back returns to the chooser); 47 e2e + 3778 unit tests pass Signed-off-by: Taylor Ho <taylorkmho@gmail.com> 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