perf(bookkeeping): fiscal-year pickers and cash accounts read the session cache (#1934)
First consumer migration onto lib/reference-data. FyPicker and
FiscalYearSelector (14 consumer surfaces, 47 fiscal-period fetch sites
before this series) now read useFiscalPeriods(); with the layout seed the
restore of the persisted scope runs in the first effect tick and onReady
fires on mount instead of after a round trip. Their restore rules are
extracted into a pure resolveInitialFiscalScope() (lib/reference-data/
fiscal-scope.ts) so the two pickers cannot drift apart again, and the
restore runs once per company load, not on every background revalidation.
- /reports: the static catalog renders immediately; only the "no fiscal
year" empty state waits for the picker (previously six skeleton bars
until /api/bookkeeping/fiscal-periods resolved).
- JournalEntryList (/bookkeeping): resolves its initial scope from the
cached list instead of its own fetch; the saved-scope shortcut still
unblocks the entries fetch first when nothing is cached, and resolution
is guarded to once per company so a revalidation can never snap a
deep-link "all years" visit back to the stored year.
- /transactions: the account chooser reads useCashAccounts({ enabledOnly })
(seeded) instead of fetching /api/cash-accounts on every visit; the bank
sync button invalidates that entry after a sync.
- STORAGE_KEY_PREFIX / ALL_YEARS_VALUE move to a dependency-free
fiscal-year-storage.ts (re-exported from FiscalYearSelector) so lib/ code
can import them without a React component.
raw-reference-fetch ratchet: 55 -> 51 files.
Co-authored-by: Jakob Wennberg <311770904+jakobwennberg-oss@users.noreply.github.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Jakob Wennberg
Claude Fable 5
parent
b436d47b64
commit
9a56b7aff9
@@ -34,7 +34,7 @@
|
||||
]
|
||||
},
|
||||
"rawReferenceFetch": {
|
||||
"count": 55,
|
||||
"count": 51,
|
||||
"files": [
|
||||
"app/(dashboard)/assets/[id]/dispose/page.tsx",
|
||||
"app/(dashboard)/bookkeeping/year-end/page.tsx",
|
||||
@@ -47,7 +47,6 @@
|
||||
"app/(dashboard)/salary/employees/[id]/page.tsx",
|
||||
"app/(dashboard)/salary/runs/[id]/page.tsx",
|
||||
"app/(dashboard)/supplier-invoices/[id]/page.tsx",
|
||||
"app/(dashboard)/transactions/page.tsx",
|
||||
"components/articles/ArticleForm.tsx",
|
||||
"components/bookkeeping/BookingTemplatePicker.tsx",
|
||||
"components/bookkeeping/ChartOfAccounts.tsx",
|
||||
@@ -55,12 +54,9 @@
|
||||
"components/bookkeeping/CorrectionEntryDialog.tsx",
|
||||
"components/bookkeeping/EditAccountDialog.tsx",
|
||||
"components/bookkeeping/JournalEntryForm.tsx",
|
||||
"components/bookkeeping/JournalEntryList.tsx",
|
||||
"components/bookkeeping/StrikeLinesDialog.tsx",
|
||||
"components/bookkeeping/TemplateBookDialog.tsx",
|
||||
"components/common/CashAccountSelector.tsx",
|
||||
"components/common/FiscalYearSelector.tsx",
|
||||
"components/common/FyPicker.tsx",
|
||||
"components/dimensions/types.ts",
|
||||
"components/extensions/general/ArcimMigrationWorkspace.tsx",
|
||||
"components/extensions/general/BookDirectlyDialog.tsx",
|
||||
|
||||
Reference in New Issue
Block a user