Redesign the setup flow and consolidate the CSS into one primitives layer
Onboarding asks explicitly for one or two parents and shows one card per parent for balances; the balance form is per parent with inline validation; the partner can be filled from the FK deduction or added from it. Settings and Dashboard reuse the same form. CSS: bare buttons carry no colour any more; buttons, cards, choice cards, fields, alerts, badges, eyebrow and modal chrome are defined once in primitives.css. Media queries live only in responsive.css. A style guard test blocks hex, !important and stray media queries. Bilingual fixes: calendar selects size by content, header no longer wraps. Vitest is capped at four workers. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
@@ -59,7 +59,6 @@ const unauthenticated = {
|
||||
const workspace: Workspace = {
|
||||
id: 'ws1',
|
||||
name: 'Our workspace',
|
||||
planningMode: 'couple',
|
||||
createdAt: '2026-01-01T00:00:00Z',
|
||||
}
|
||||
|
||||
@@ -373,4 +372,21 @@ describe('WorkspaceContext', () => {
|
||||
'useWorkspace must be used inside <WorkspaceProvider>',
|
||||
)
|
||||
})
|
||||
|
||||
it('bumpPlanVersion increments planVersion, giving hooks watching it a reason to refetch', () => {
|
||||
vi.mocked(useAuth).mockReturnValue(unauthenticated)
|
||||
|
||||
const { result } = renderHook(() => useWorkspace(), { wrapper })
|
||||
expect(result.current.planVersion).toBe(0)
|
||||
|
||||
act(() => {
|
||||
result.current.bumpPlanVersion()
|
||||
})
|
||||
expect(result.current.planVersion).toBe(1)
|
||||
|
||||
act(() => {
|
||||
result.current.bumpPlanVersion()
|
||||
})
|
||||
expect(result.current.planVersion).toBe(2)
|
||||
})
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user