Description
Upgrade the frontend to React 19 and enable the React Compiler. React 19 brings automatic memoization via the Compiler and better runtime performance. This upgrade removes boilerplate and prepares the codebase for future React 19 features.
Acceptance criteria
- React and React DOM upgraded from
18.3.1 to 19.2.7
@types/react and @types/react-dom upgraded to ^19.0.0
babel-plugin-react-compiler added and enabled in vite.config.ts
- All Blueprint.js dependencies upgraded to versions that officially support React 19 (
18 || 19):
@blueprintjs/core: 6.11.3 → 6.16.0
@blueprintjs/icons: 6.8.0 → 6.11.0
@blueprintjs/select: 6.1.8 → 6.3.0
- Manual
useMemo and useCallback removed — React Compiler handles memoization automatically
<Context.Provider> simplified to <Context> using React 19 syntax
tsc --noEmit passes without errors
vite build succeeds
- ESLint shows no new errors (pre-existing warnings are unchanged)
npm install succeeds without --legacy-peer-deps
Implementation references
Scope
Originally posted by @kamalovk in #732 (reply in thread)
Description
Upgrade the frontend to React 19 and enable the React Compiler. React 19 brings automatic memoization via the Compiler and better runtime performance. This upgrade removes boilerplate and prepares the codebase for future React 19 features.
Acceptance criteria
18.3.1to19.2.7@types/reactand@types/react-domupgraded to^19.0.0babel-plugin-react-compileradded and enabled invite.config.ts18 || 19):@blueprintjs/core:6.11.3→6.16.0@blueprintjs/icons:6.8.0→6.11.0@blueprintjs/select:6.1.8→6.3.0useMemoanduseCallbackremoved — React Compiler handles memoization automatically<Context.Provider>simplified to<Context>using React 19 syntaxtsc --noEmitpasses without errorsvite buildsucceedsnpm installsucceeds without--legacy-peer-depsImplementation references
Scope
frontend/package.jsonfrontend/vite.config.tsfrontend/src/common/ThemeManager.tsxfrontend/src/context/ProxyStateContext.tsxOriginally posted by @kamalovk in #732 (reply in thread)