-
Spike
-
Resolution: Unresolved
-
Undefined
-
None
-
None
-
None
-
None
-
Product / Portfolio Work
-
False
-
-
False
-
None
-
None
-
None
AC:
- Read and learn about React 18 (some relevant rfcs: React 18, suspense changes, useSyncExternalStore)
-
- Wow
- Figure out what remaining changes are needed in order to make React 18 work in console
-
- Need to bump react-dnd for DndProvider type to explicitly have a children prop CONSOLE-5015
- Need to bump react redux for type errors CONSOLE-4989
- Need to bump i18next for type errors CONSOLE-4778
- with the version of i18next we want to go to, we need to enable allowObjectInHTMLChildren: https://github.com/i18next/react-i18next/issues/1483#issuecomment-1827603003
- Figure out whether we can allow React 17 dynamic plugins to load in React 18 (without compatibility guarantees)
- Probably..? We can probably allow plugins to continue suppress shared module warnings if they really can't upgrade, and we could loosen the shared module semver range during runtime so that stuff will try to work. However due to changes in rendering behavior, we cannot guarantee everything will work
- Figure out why some pages like Topology and +Add in developer perspective don't work in React 18 non-concurrent rendering mode (ReactDOM.render)
- It was probably LazyRoutePage
- Figure out why console does not load at all in React 18 concurrent rendering mode (createRoot)
- TBD
- Identify where we should use new React 18 hooks like useSyncExternalStore and useId to better support concurrent rendering mode
- TBD
- Determine whether we should follow the React-recommended pattern of wrapping our app with React.StrictMode to enable debugging concurrent mode problems easier
- Probably because our code is also very old and so I don't have much confidence that our effects will still work fine after being run twice. Enabling this also forces plugin authors to use always use StrictMode which they might not want to
- I would love to do this though so maybe a stretch goal can be enabling strict mode and fixing all strict-mode related stuff
- informs
-
CONSOLE-4402 Update to React 18 - Phase 1
-
- To Do
-
-
CONSOLE-4512 Update to React 18 - Phase 2
-
- To Do
-