Migrate Angular 9 Hacker News client to React with TypeScript #138
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.
Migrate Angular 9 Hacker News client to React with TypeScript
Summary
This PR completely migrates the Hacker News PWA client from Angular 9 to React 18 with TypeScript. The migration includes:
useFeed,useItemDetails,useUser)SettingsContext) with localStorage persistence@angular/service-workerwithvite-plugin-pwaand WorkboxAll original features are preserved: 5 feed types, pagination, nested comments, user profiles, theme switching, and offline support.
Updates since last revision
Review & Testing Checklist for Human
This is a complete framework rewrite with no automated tests. Manual verification is critical.
/news/1,/newest/1,/show/1,/ask/1,/jobs/1and verify items load correctlynpm run build), serve withnpm run preview, verify service worker registers and app is installableRecommended Test Plan
npm install && npm run devto start development servernpm run build) and test PWA functionality withnpm run previewScreenshots
News feed with logo correctly positioned in header:

Item details page:

Notes
@importsyntax (warnings during build) but functions correctlyLink to Devin run: https://app.devin.ai/sessions/90e4725ba54243f7b24026ae5d035268
Requested by: Eashan Sinha (@eashansinha-cog)