feat: UI polish, lint fixes, onboarding redesign, help page expansion, and test improvements

Broad update across dashboard pages, components, extensions, and lib code. Includes ESLint config additions, onboarding flow redesign, settings page refactor, help page content expansion, dead code removal, and test mock fixes. Adds dev docs and public assets.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Jakob Wennberg
2026-03-05 23:05:49 +01:00
co-authored by Claude Opus 4.6
parent 02ebe50f52
commit 091d043c85
106 changed files with 1177 additions and 326 deletions
+4 -4
View File
@@ -29,10 +29,6 @@ export default function ChartOfAccounts() {
const [editingSRU, setEditingSRU] = useState<string | null>(null)
const [sruValue, setSruValue] = useState('')
useEffect(() => {
fetchAccounts()
}, [])
async function fetchAccounts() {
const res = await fetch('/api/bookkeeping/accounts')
const { data } = await res.json()
@@ -40,6 +36,10 @@ export default function ChartOfAccounts() {
setLoading(false)
}
useEffect(() => {
fetchAccounts()
}, [])
async function updateSRUCode(accountId: string, newSruCode: string) {
const supabase = createClient()
const trimmed = newSruCode.trim() || null
+5 -5
View File
@@ -70,11 +70,6 @@ export default function JournalEntryForm({
uploadedFiles.length > 0
useUnsavedChanges(hasContent)
useEffect(() => {
fetchPeriods()
fetchAccounts()
}, [])
async function fetchPeriods() {
const res = await fetch('/api/bookkeeping/fiscal-periods')
const { data } = await res.json()
@@ -90,6 +85,11 @@ export default function JournalEntryForm({
setAccounts(data || [])
}
useEffect(() => {
fetchPeriods()
fetchAccounts()
}, [])
const addLine = () => {
setLines([...lines, { ...BLANK_LINE }])
}
+4 -4
View File
@@ -49,10 +49,6 @@ export default function JournalEntryList({ periodId }: Props) {
}
}, [])
useEffect(() => {
fetchEntries()
}, [periodId, page])
async function fetchEntries() {
setLoading(true)
const params = new URLSearchParams({
@@ -73,6 +69,10 @@ export default function JournalEntryList({ periodId }: Props) {
fetchAttachmentCounts(ids)
}
useEffect(() => {
fetchEntries()
}, [periodId, page])
const handleAttachmentCountChange = useCallback((entryId: string, count: number) => {
setAttachmentCounts((prev) => ({ ...prev, [entryId]: count }))
}, [])