feat: convert components and pages to TypeScript#59
Merged
mjdavidson merged 1 commit intomasterfrom May 7, 2026
Merged
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
12 files migrated client-side, completing the JS → TS transition:
- 6 components: Alert, Home, Layout, LoginWithEmail, LoginWithSSO, Settings
- pages/_app.tsx
- pages/index.tsx (marketing landing)
- pages/app/{index,login,settings,sso}.tsx
Notable cleanups picked up by strict typing:
- LoginWithSSO was using <Alert succeeded={...} /> but Alert reads
`success` — the alert always rendered as a failure regardless of
outcome. Fixed.
- pages/app/{login,sso}.tsx had `e` shadowing onSubmit's parameter
in catch blocks. Replaced class methods with arrow-function
properties + `catch (err)`, dropping the inner .bind(this).
- Settings now has a proper Intent union type instead of a stringly-
typed `intent` parameter.
- All class component renders carry the `override` modifier required
by tsconfig's `noImplicitOverride`.
globals.d.ts adds `declare module '*.css'` for side-effect CSS imports
(the previous tailwind.css import in _app was unrecognised by tsc).
The 4 config files (next.config.js, instrumentation-client.js,
tailwind.config.js, postcss.config.js) intentionally stay JS — no
benefit to converting them.
Verified: typecheck (strict, 0 errors), lint (0 warnings), format,
build all clean.
53d6af6 to
28e9e04
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stacked on #58. 12 client-side files migrated, completing the JS → TS transition.
Notable cleanups picked up by strict typing:
LoginWithSSOwas passing<Alert succeeded={...} />butAlertreadssuccess— the alert always rendered as a failure regardless of outcome. Fixed.pages/app/{login,sso}.tsxhadeshadowingonSubmit's param in catch blocks. Replaced class methods with arrow-function properties +catch (err), dropping the inner.bind(this).Settingsnow has a properIntentunion type instead of stringly-typedintent.rendermethods carryoverride(required bynoImplicitOverride).globals.d.tsaddsdeclare module '*.css'so the side-effect CSS import in_apptypechecks.Config files (
next.config.js,instrumentation-client.js,tailwind.config.js,postcss.config.js) intentionally stay JS.Lint warnings: 3 → 0.