Expo client scaffolding — router, RN Web, theming port, i18n, offline, reference screen #183
Labels
No labels
area:auth
area:ci
area:db
area:infra
area:native
area:pwa
area:service
epic
feature
foundation
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
james/carol#183
Loading…
Add table
Add a link
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?
Stand up the Expo Router + React Native Web project in
apps/client, port the theme/token system, wire up i18n and offline support, and prove the loop end-to-end with a single screen calling the API via the generated client.This is the biggest single ticket in #176. It exists to establish the shape; the per-screen ports follow.
Scope
apps/client, set up for web + Android + (later) Linux Flatpak via the web build.app/themes/{light,dark}.css(Carol DS tokens, ADR-0023) into a runtime-styled theme object compatible with RN'sStyleSheet. Same token names, different syntax. CSS variables on web; JS object on native — same theme contract either way.i18next+react-i18next, withexpo-localizationfor the default). Source catalog stays atpackages/i18n/messages/*.json. ADR-0025 §6 deferred zod messages remain deferred.app/sw.ts/app/sw-register.tsx.SecureStoreon native, cookies on web (same-origin). Bearer-token attachment in the generated client's fetch./skills, since #143 just landed) ported end-to-end against the generated client + hooks, on both the web build and an Android dev build.Acceptance criteria
apps/clientbuilds withexpo export --platform weband produces a static bundle.apps/clientruns inexpo run:androidagainst a self-hoster's API URL set at runtime./showed pre-migration on both themes.messages/en.jsonstrings load via the new i18n runtime; per-key fallback to English still works.Out of scope
Composes with
Repo restructure, Generated typed client, Token-based auth, Port existing screens, ADR-0023, ADR-0025.
Part of
#176