Simpl-Resultat/src/components/shared
le king fu 624eef7ba8
All checks were successful
PR Check — Frontend / frontend (pull_request) Successful in 1m59s
feat(onboarding): Import empty states, sample folder button and guide links (#356)
The import page without a source no longer shows a bare "no source found"
card. `ImportEmptyState` (built on the shared `EmptyState`) takes the place
of the empty `SourceList` in both situations: without an import folder it
offers "Choose a folder" as the single primary action; with a folder and no
bank sub-folder it offers "Create a sample folder" (primary, disabled while
in flight) and "Refresh" (secondary). Both variants, and the "?" help
popover through the new optional `linkTo` prop of `PageHelp`, link to the
bank CSV export guide at `/settings/users#import-export`. `SourceList`
stays an untouched pure list.

`useImportWizard` gains `createSampleFolders`: it invokes the Rust command
`create_sample_import_folders` with the folder and the webview's LOCAL date
(built from the local getters, not `toISOString()`), rescans the folder so
the two cards appear without another click, then raises a closable success
banner from the new `sampleCreated` state, which `reset` and a folder change
clear. A refusal from Rust (a sample folder already exists) lands in the
existing error banner. The log line carries the folder NAMES only, never
the absolute path, since the logs travel with a feedback report.

"Browse" on the folder card drops to the secondary style while no folder is
configured, so a single primary button is on screen. The reducer and its
initial state are exported as `wizardReducer` / `initialWizardState` and
unit-tested; `ImportEmptyState` is tested by direct call.

Resolves #356

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-03 20:10:25 -04:00
..
CategoryCombobox.test.ts fix(reports): render category combobox in hierarchical DFS order (#126) 2026-04-21 20:58:53 -04:00
CategoryCombobox.tsx fix(reports): render category combobox in hierarchical DFS order (#126) 2026-04-21 20:58:53 -04:00
ChartContextMenu.tsx refactor: remove pivot report, add sub-route skeletons and shared components (#69) 2026-04-14 14:25:38 -04:00
ContextMenu.tsx refactor: remove pivot report, add sub-route skeletons and shared components (#69) 2026-04-14 14:25:38 -04:00
DownloadLatestButton.tsx fix(upsell): apply the review of #362 2026-09-27 20:47:04 -04:00
EmptyState.test.tsx feat(onboarding): dashboard empty state, getting-started checklist and re-show button (#352) 2026-10-03 19:32:43 -04:00
EmptyState.tsx feat(onboarding): dashboard empty state, getting-started checklist and re-show button (#352) 2026-10-03 19:32:43 -04:00
ErrorBoundary.tsx Add error boundary, error page, and startup timeout 2026-02-28 19:01:39 -05:00
ErrorPage.tsx feat(upsell): activate "Get Base", honest Premium note, purchase path in Free, Account card text 2026-09-27 15:50:45 -04:00
HaveKeyButton.tsx feat(upsell): activate "Get Base", honest Premium note, purchase path in Free, Account card text 2026-09-27 15:50:45 -04:00
PageHelp.tsx feat(onboarding): Import empty states, sample folder button and guide links (#356) 2026-10-03 20:10:25 -04:00
PurchaseButton.tsx fix(upsell): apply the review of #362 2026-09-27 20:47:04 -04:00
RequireFeature.tsx feat(gating): UI guard — RequireFeature + UpsellGate + i18n 2026-07-20 22:05:04 -04:00
TransactionDetailModal.tsx Add sort and amount toggle to report details, sticky budget headers 2026-03-01 09:31:47 -05:00
UpsellCtas.render.test.tsx fix(license): apply the review of #368 2026-10-03 09:29:47 -04:00
UpsellGate.tsx feat(license): online revocation check — a revoked key falls back to Free (#365) 2026-10-02 14:45:34 -04:00