From 1c5f74e4f0a2a9df37b564c1e79a45773175c9fa Mon Sep 17 00:00:00 2001 From: Dave Richer Date: Wed, 20 Dec 2023 16:30:22 -0500 Subject: [PATCH] Additional stable refactors, redux deprecation, substr deprecation. Clearing stage as to not lose low risk work. Signed-off-by: Dave Richer --- client/package-lock.json | 41 +++++++++++++++++++ client/package.json | 1 + .../dms-post-form/dms-post-form.component.jsx | 2 +- client/src/redux/store.js | 39 ++++++++++-------- 4 files changed, 66 insertions(+), 17 deletions(-) diff --git a/client/package-lock.json b/client/package-lock.json index b576b7193..4489d14f3 100644 --- a/client/package-lock.json +++ b/client/package-lock.json @@ -15,6 +15,7 @@ "@craco/craco": "^7.1.0", "@fingerprintjs/fingerprintjs": "^4.2.1", "@jsreport/browser-client": "^3.1.0", + "@reduxjs/toolkit": "^2.0.1", "@sentry/react": "^7.90.0", "@sentry/tracing": "^7.90.0", "@splitsoftware/splitio-react": "^1.10.2", @@ -4372,6 +4373,38 @@ "resolved": "https://registry.npmjs.org/@redux-saga/types/-/types-1.2.1.tgz", "integrity": "sha512-1dgmkh+3so0+LlBWRhGA33ua4MYr7tUOj+a9Si28vUi0IUFNbff1T3sgpeDJI/LaC75bBYnQ0A3wXjn0OrRNBA==" }, + "node_modules/@reduxjs/toolkit": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-2.0.1.tgz", + "integrity": "sha512-fxIjrR9934cmS8YXIGd9e7s1XRsEU++aFc9DVNMFMRTM5Vtsg2DCRMj21eslGtDt43IUf9bJL3h5bwUlZleibA==", + "dependencies": { + "immer": "^10.0.3", + "redux": "^5.0.0", + "redux-thunk": "^3.1.0", + "reselect": "^5.0.1" + }, + "peerDependencies": { + "react": "^16.9.0 || ^17.0.0 || ^18", + "react-redux": "^7.2.1 || ^8.1.3 || ^9.0.0" + }, + "peerDependenciesMeta": { + "react": { + "optional": true + }, + "react-redux": { + "optional": true + } + } + }, + "node_modules/@reduxjs/toolkit/node_modules/immer": { + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/immer/-/immer-10.0.3.tgz", + "integrity": "sha512-pwupu3eWfouuaowscykeckFmVTpqbzW+rXFCX8rQLkZzM9ftBmU/++Ra+o+L27mz03zJTlyV4UUr+fdKNffo4A==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, "node_modules/@remix-run/router": { "version": "1.14.0", "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.14.0.tgz", @@ -18830,6 +18863,14 @@ "broadcast-channel": "^3.1.0" } }, + "node_modules/redux-thunk": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-3.1.0.tgz", + "integrity": "sha512-NW2r5T6ksUKXCabzhL9z+h206HQw/NJkcLm1GPImRQ8IzfXwRGqjVhKJGauHirT0DAuyy6hjdnMZaRoAcy0Klw==", + "peerDependencies": { + "redux": "^5.0.0" + } + }, "node_modules/reflect-metadata": { "version": "0.1.14", "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.14.tgz", diff --git a/client/package.json b/client/package.json index 73a042e1b..9a62437d5 100644 --- a/client/package.json +++ b/client/package.json @@ -11,6 +11,7 @@ "@craco/craco": "^7.1.0", "@fingerprintjs/fingerprintjs": "^4.2.1", "@jsreport/browser-client": "^3.1.0", + "@reduxjs/toolkit": "^2.0.1", "@sentry/react": "^7.90.0", "@sentry/tracing": "^7.90.0", "@splitsoftware/splitio-react": "^1.10.2", diff --git a/client/src/components/dms-post-form/dms-post-form.component.jsx b/client/src/components/dms-post-form/dms-post-form.component.jsx index 8a1897b93..854de5805 100644 --- a/client/src/components/dms-post-form/dms-post-form.component.jsx +++ b/client/src/components/dms-post-form/dms-post-form.component.jsx @@ -100,7 +100,7 @@ export function DmsPostForm({ bodyshop, socket, job, logsRef }) { "UNKNOWN", }) : "" - }`.substr(0, 239), + }`.slice(0, 239), inservicedate: dayjs("2019-01-01"), }} > diff --git a/client/src/redux/store.js b/client/src/redux/store.js index 55452833d..19d33bb38 100644 --- a/client/src/redux/store.js +++ b/client/src/redux/store.js @@ -1,5 +1,13 @@ -import { createStore, applyMiddleware, compose } from "redux"; -import { persistStore } from "redux-persist"; +import { configureStore } from '@reduxjs/toolkit'; +import { + persistStore, + FLUSH, + REHYDRATE, + PAUSE, + PERSIST, + PURGE, + REGISTER +} from "redux-persist"; import { createLogger } from "redux-logger"; import createSagaMiddleware from "redux-saga"; import { @@ -26,24 +34,23 @@ const middlewares = [ sagaMiddleWare, createStateSyncMiddleware(reduxSyncConfig), ]; + if (process.env.NODE_ENV === "development") { middlewares.push(createLogger({ collapsed: true, diff: true })); } -//middlewares.push(Tracker.use(trackerRedux())); -const composeEnhancers = - typeof window === "object" && window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ - ? window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__({ - // Specify extension’s options like name, actionsBlacklist, actionsCreators, serialize... - }) - : compose; -const enhancer = composeEnhancers( - applyMiddleware(...middlewares), - sentryReduxEnhancer - // other store enhancers if any -); +export const store = configureStore({ + reducer: rootReducer, + middleware: (getDefaultMiddleware) => getDefaultMiddleware({ + serializableCheck: { + ignoredActions: [FLUSH, REHYDRATE, PAUSE, PERSIST, PURGE, REGISTER], + }, + }).concat(middlewares), + // middleware: middlewares, + devTools: process.env.NODE_ENV !== 'production', + enhancers: (getDefaultEnhancers) => getDefaultEnhancers().concat(sentryReduxEnhancer) +}); -export const store = createStore(rootReducer, enhancer); sagaMiddleWare.run(rootSaga); initMessageListener(store); @@ -53,4 +60,4 @@ export default e; if (window.Cypress) { window.store = store; -} +} \ No newline at end of file