fabro/apps/fabro-web
Bryan Helmkamp 20e4ef32ae
refactor(install): collapse overlapping React state into discriminated unions
Two wins here. First, the `session`/`loadingSession`/`sessionError`
triple is replaced with a single `SessionState` discriminated union, so
the component can switch on `.status` instead of juggling three
correlated flags. Second, the seven flat `useState` calls for the
GitHub step are grouped into `githubStrategy` + `tokenForm` + `appForm`,
with `appForm.owner` typed as the generated `InstallGithubAppOwner`
tagged object. Invalid states like "token flow but org slug set" simply
stop existing.

\`buildInstallGithubAppOwner\` is deleted (unused) — form handlers build
the tagged object in place, which is small enough to stay readable.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-19 13:59:09 -04:00
..
app refactor(install): collapse overlapping React state into discriminated unions 2026-04-19 13:59:09 -04:00
public Add screenshots, workflow diagram, lightbox, and fix logotype viewBox 2026-03-16 10:09:57 -04:00
scripts feat(install): add browser-based setup flow 2026-04-19 11:20:58 -04:00
.dockerignore Rename Arc to Fabro in TypeScript/JavaScript 2026-03-12 11:13:18 -04:00
.gitignore Rename Arc to Fabro in TypeScript/JavaScript 2026-03-12 11:13:18 -04:00
bun.lock Rename Arc to Fabro in TypeScript/JavaScript 2026-03-12 11:13:18 -04:00
index.template.html fix(fabro-web): default unsaved theme selection to dark 2026-04-08 12:10:34 -04:00
package.json fix(install): harden web wizard against review findings 2026-04-19 12:43:00 -04:00
tsconfig.json Fix login route collision after SPA cutover 2026-04-01 21:55:30 -07:00