logaritmisk
b23a48c310
feat(web): authoring query/mutation hooks + MSW handlers + shadcn select/checkbox/alert-dialog
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-04 00:22:59 +02:00
logaritmisk
0a2398f507
fix(web): localize flexible-field labels to the active locale (sv/en)
...
CI / web (push) Has been cancelled
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-03 23:37:26 +02:00
logaritmisk
397e606793
ci(web): fail bundle check when no JS chunks found (avoid false green)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-03 23:31:08 +02:00
logaritmisk
89132f6745
ci(web): typecheck/lint/test/build + bundle-size budget
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-03 23:28:36 +02:00
logaritmisk
1d1be5fbe9
fix(web): hide null flexible-field values instead of rendering 'null'
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-03 23:17:14 +02:00
logaritmisk
859f41dcb9
feat(web): object detail + two-pane page + app routing
...
Implements the navigable SPA shell: object detail pane showing
inventory-minimum fields, flexible fields (via Record<string,unknown>
cast) and visibility badge; ObjectsPage two-pane layout; BrowserRouter
wired through RequireAuth+AppShell; QueryClient provided in main.tsx.
Consolidates ObjectList NavLink to use isActive function form, removing
manual useParams highlight.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-03 23:13:52 +02:00
logaritmisk
d6fe0b0597
feat(web): paginated object list with visibility badges and states
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-03 23:06:42 +02:00
logaritmisk
684469273f
feat(web): app shell with sidebar nav, language switch, sign out
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-03 23:01:42 +02:00
logaritmisk
057a00c413
feat(web): login page with inline error handling
...
Add shadcn input/label/card primitives and implement the login page:
email/password form using useLogin, navigates to /objects on success,
shows inline i18n error on 401 (auth.invalid) or network failure.
2 new tests, 9 total green.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-03 22:56:17 +02:00
logaritmisk
01f43e1f67
fix(web): disable retry on useObject (404 resolves to null)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-03 22:53:32 +02:00
logaritmisk
cf02eeb991
feat(web): TanStack Query hooks + session-guarded routes
...
Installs @tanstack/react-query and react-router-dom; adds typed query
hooks (useMe, useObjectsPage, useObject, useFieldDefinitions, useLogin,
useLogout), a QueryClient+MemoryRouter test render helper, and
RequireAuth — a layout route that blocks unauthenticated access and
redirects to /login. All 7 tests pass, typecheck/lint/build clean.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-03 22:49:55 +02:00
logaritmisk
2e4187c850
test(web): reset i18n to English after the language-switch test
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-03 22:47:27 +02:00
logaritmisk
478b4ce44e
feat(web): i18n with react-i18next (sv/en)
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-03 22:42:47 +02:00
logaritmisk
66d0624279
test(web): MSW harness with typed handlers, fixtures, and client tests
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-03 22:35:55 +02:00
logaritmisk
dcfddc88c7
feat(web): generated OpenAPI types + typed openapi-fetch client with 401 redirect
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-03 22:25:10 +02:00
logaritmisk
5267f05089
fix(web): restore shadcn theme tokens in index.css; tidy deps + eslint rule
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-03 22:21:58 +02:00
logaritmisk
b7ec4b1041
feat(web): Tailwind 4 + shadcn/ui + ESLint
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-03 22:14:12 +02:00
logaritmisk
8466ed4d08
chore(web): drop dangling favicon link (runtime 404)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-03 22:10:29 +02:00
logaritmisk
f64688a16f
feat(web): scaffold Vite + React + TS SPA with Vitest
...
Bootstraps the web/ SPA: Vite 6 + React 19 + TypeScript 5.8, Vitest
with jsdom, @testing-library/react, and a green smoke test asserting
the App renders its Collection heading.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-03 22:06:03 +02:00