Remove onboarding flow and progressive disclosure #51
Labels
No labels
bug
duplicate
enhancement
good first issue
help wanted
question
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: lvl0/incr#51
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
A counter at zero is the normal case, not an unconfigured app. The onboarding gate currently makes those two states indistinguishable.
The bug this fixes
dashboard.tsx:55gates the whole dashboard behind:So a counter legitimately sitting at 0 gets thrown back into the setup wizard. With milestones gone (#49) this condition is broken anyway.
Scope
Onboarding:
components/Onboarding/OnboardingFlow.tsx(177),components/Onboarding/CreateTrackerStep.tsx(113)needsOnboardingstate andhandleOnboardingCompleteA tracker is created on demand with sensible defaults (
count = 0) instead of via a wizard. Label and unit become editable later, not setup gates.Progressive disclosure:
showProgressBar/showStatsBox/activeForm— three booleans deciding what's visible, plus theactiveForm && showProgressBar && showStatsBoxgate atdashboard.tsx:191style={{ display: … }}mount-but-hide patterncomponents/Display/InlineForm.tsx→ replaced by a single dialogFetch waterfall:
Promise.allblock duplicated atdashboard.tsx:29-55and:96-122TerminalSpinneron initial loadData comes in as Inertia props from
Inertia::render('dashboard', ['count' => …]). This removes the round-trip-after-paint that makes the app feel slow, and is the same one-shot render model Livewire uses — so #52 becomes a near-mechanical swap.Acceptance criteria
0and never triggers a setup screendashboard.tsxis under ~50 linesScope revised — pulled forward, ahead of #48/#50
Original ticket removed onboarding entirely on the reasoning that a counter at zero is the normal case. Revised after UI verification of #47: a first-run screen stays, trimmed to a single input for the starting value.
Rationale: "I've already read 47 books, start me there" is a real need, and an increment dialog alone doesn't communicate that on first run.
First-run becomes
Shown only when no tracker exists. After that, the counter — permanently.
Removed
CreateTrackerSteplabel + unit inputs → tracker created with defaultsAddEntryFormdate input → starting value onlyAddMilestoneFormfrom onboarding)OnboardingFlow's step chrome: step selector,[STATUS] n/2 STEPS COMPLETE,[REQ]/[✓]badges, step-completion state machinetotalQuantity === 0 || milestonesCount === 0gate atdashboard.tsx:55→ replaced by "does a tracker exist"Known rework cost
Running this before #50 means the input writes an
entriesrow against the existing ledger. #50 replaces that withtrackers.count. Accepted deliberately — the screen is wanted now.Superseded criteria
The original "counter of 0 never triggers a setup screen" still holds, but for a different reason: the gate becomes tracker-existence, not value-based. A tracker with count 0 shows the counter, not onboarding.
Closed by #52 — remaining criteria satisfied by construction
This ticket was partially done in
8ce8a20(onboarding trimmed to a single starting-value input, gate changed to tracker existence). Two criteria were left outstanding:GET /returns the count in the initial HTML;TerminalSpinnerand thePromise.allfetch waterfall were deleted with the rest ofresources/js/.dashboard.tsxis under ~50 lines" — moot.dashboard.tsxno longer exists; the equivalent is a Blade view rendered by a single Livewire component.The progressive-disclosure chain (
showProgressBar/showStatsBox/activeForm, thestyle={{display}}pattern, the triple-gated form) was removed earlier by #49 whenStatsBoxandProgressBarwere deleted.Nothing left to do here.