PR: #754: feat(onboarding): add workspace hello bar [Story-3100] by @ankitmaheshwari-com
View PR →

Files changed

21 file(s), +914 / -54 lines

Path Role + -
messages/en.jsonConfig+26-0
messages/hi.jsonConfig+26-0
src/app/[locale]/(workspace)/layout.tsxApp route+44-24
src/app/api/internal/onboarding/nudges/[key]/dismiss/route.tsApp route+27-0
src/app/api/internal/onboarding/nudges/route.tsApp route+13-0
src/components/app-chrome.stories.tsxComponent+15-0
src/components/app-chrome.tsxComponent+39-30
src/components/onboarding/onboarding-hello-bar-fixtures.tsComponent+65-0
src/components/onboarding/onboarding-hello-bar-view.stories.tsxComponent+102-0
src/components/onboarding/onboarding-hello-bar-view.tsxComponent+62-0
src/components/onboarding/onboarding-hello-bar.stories.tsxComponent+67-0
src/components/onboarding/onboarding-hello-bar.test.tsComponent+30-0
src/components/onboarding/onboarding-hello-bar.tsxComponent+73-0
src/components/onboarding/onboarding-nudge-art.stories.tsxComponent+48-0
src/components/onboarding/onboarding-nudge-art.tsxComponent+64-0
src/components/onboarding/presentation.tsComponent+9-0
src/components/onboarding/select-session-nudge.tsComponent+25-0
src/lib/kubb-client.tsLibrary+3-0
src/lib/onboarding/gateway.test.tsLibrary+75-0
src/lib/onboarding/gateway.tsLibrary+54-0
src/lib/onboarding/query.tsLibrary+47-0

Story-3100: Onboarding hello bar

A first-run firm now receives one clear next step in a compact strip above the entire workspace. The bar sits above the Global Rail, remains stable while counsel navigates, and leaves no gap when no onboarding ask is eligible.

What shipped

Boundary Behaviour
Window chrome One crimson-tint, one-line bar spans the viewport above the Global Rail and page.
Four asks Create a matter, add a document, connect WhatsApp, or personalise Vani. The Drive ask is deliberately excluded from this version.
Selection One eligible ask is chosen randomly and stored in sessionStorage. The same ask survives route navigation and is never replaced by a stack.
Dismissal The bar collapses immediately while dismissal runs. A rejected request restores the bar and shows a translated error toast.
Data The workspace layout prefetches the real onboarding endpoint through the app gateway, hydrates the generated query hook, and runtime-validates upstream JSON.

Copy and identity

Interaction proof

The shipped Storybook story Onboarding / OnboardingHelloBar / Interactive Enter And Exit provides replay controls for both directions. The bar animates its height with the shared micro-transition, so the workspace reflows during the animation rather than snapping after unmount.

Acceptance boundary

Automated checks cover the four-key generated contract, sticky selection, browser-to-proxy route mapping, malformed upstream rejection, and the existing app chrome. Runtime evidence is recorded in the pull request because Storybook fixtures alone do not prove the real endpoint or its zero-nudges response.