From 3cf1ce2b5d575e9c1c67a7cbab8ab7bd91a0226d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 10 Dec 2025 22:46:58 +0000 Subject: [PATCH] chore(deps): update dependency @reduxjs/toolkit to v2 (#2369) * fix(deps): update dependency @reduxjs/toolkit to v2 * chore: minor updates to work with RTK version 2 --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Braden MacDonald --- package-lock.json | 66 ++++++++++++++++--- package.json | 2 +- src/optimizer-page/data/slice.test.ts | 14 +++- .../discussions/DiscussionsSettings.test.jsx | 8 +-- src/store.ts | 2 +- src/testUtils.tsx | 4 +- 6 files changed, 72 insertions(+), 24 deletions(-) diff --git a/package-lock.json b/package-lock.json index b553d7aff..9e9dba810 100644 --- a/package-lock.json +++ b/package-lock.json @@ -40,7 +40,7 @@ "@openedx/frontend-plugin-framework": "^1.7.0", "@openedx/paragon": "^23.5.0", "@redux-devtools/extension": "^3.3.0", - "@reduxjs/toolkit": "1.9.7", + "@reduxjs/toolkit": "2.11.1", "@tanstack/react-query": "5.90.12", "@tinymce/tinymce-react": "^6.0.0", "classnames": "2.5.1", @@ -7948,20 +7948,22 @@ } }, "node_modules/@reduxjs/toolkit": { - "version": "1.9.7", - "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-1.9.7.tgz", - "integrity": "sha512-t7v8ZPxhhKgOKtU+uyJT13lu4vL7az5aFi4IdoDs/eS548edn2M8Ik9h8fxgvMjGoAUVFSt6ZC1P5cWmQ014QQ==", + "version": "2.11.1", + "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-2.11.1.tgz", + "integrity": "sha512-HjhlEREguAyBTGNzRlGNiDHGQ2EjLSPWwdhhpoEqHYy8hWak3Dp6/fU72OfqVsiMb8S6rbfPsWUF24fxpilrVA==", "license": "MIT", "peer": true, "dependencies": { - "immer": "^9.0.21", - "redux": "^4.2.1", - "redux-thunk": "^2.4.2", - "reselect": "^4.1.8" + "@standard-schema/spec": "^1.0.0", + "@standard-schema/utils": "^0.3.0", + "immer": "^11.0.0", + "redux": "^5.0.1", + "redux-thunk": "^3.1.0", + "reselect": "^5.1.0" }, "peerDependencies": { - "react": "^16.9.0 || ^17.0.0 || ^18", - "react-redux": "^7.2.1 || ^8.0.2" + "react": "^16.9.0 || ^17.0.0 || ^18 || ^19", + "react-redux": "^7.2.1 || ^8.1.3 || ^9.0.0" }, "peerDependenciesMeta": { "react": { @@ -7972,6 +7974,38 @@ } } }, + "node_modules/@reduxjs/toolkit/node_modules/immer": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/immer/-/immer-11.0.1.tgz", + "integrity": "sha512-naDCyggtcBWANtIrjQEajhhBEuL9b0Zg4zmlWK2CzS6xCWSE39/vvf4LqnMjUAWHBhot4m9MHCM/Z+mfWhUkiA==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, + "node_modules/@reduxjs/toolkit/node_modules/redux": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/redux/-/redux-5.0.1.tgz", + "integrity": "sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==", + "license": "MIT", + "peer": true + }, + "node_modules/@reduxjs/toolkit/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==", + "license": "MIT", + "peerDependencies": { + "redux": "^5.0.0" + } + }, + "node_modules/@reduxjs/toolkit/node_modules/reselect": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/reselect/-/reselect-5.1.1.tgz", + "integrity": "sha512-K/BG6eIky/SBpzfHZv/dd+9JBFiS4SWV7FIujVyJRux6e45+73RaUHXLmIR1f7WOMaQ0U1km6qwklRQxpJJY0w==", + "license": "MIT" + }, "node_modules/@remix-run/router": { "version": "1.23.1", "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.23.1.tgz", @@ -8032,6 +8066,18 @@ "@sinonjs/commons": "^3.0.1" } }, + "node_modules/@standard-schema/spec": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.0.0.tgz", + "integrity": "sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA==", + "license": "MIT" + }, + "node_modules/@standard-schema/utils": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@standard-schema/utils/-/utils-0.3.0.tgz", + "integrity": "sha512-e7Mew686owMaPJVNNLs55PUvgz371nKgwsc4vxE49zsODpJEnxgxRo2y/OKrqueavXgZNMDVj3DdHFlaSAeU8g==", + "license": "MIT" + }, "node_modules/@svgr/babel-plugin-add-jsx-attribute": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz", diff --git a/package.json b/package.json index 501503d40..ad4c3cf06 100644 --- a/package.json +++ b/package.json @@ -63,7 +63,7 @@ "@openedx/frontend-plugin-framework": "^1.7.0", "@openedx/paragon": "^23.5.0", "@redux-devtools/extension": "^3.3.0", - "@reduxjs/toolkit": "1.9.7", + "@reduxjs/toolkit": "2.11.1", "@tanstack/react-query": "5.90.12", "@tinymce/tinymce-react": "^6.0.0", "classnames": "2.5.1", diff --git a/src/optimizer-page/data/slice.test.ts b/src/optimizer-page/data/slice.test.ts index 68a3b03f4..78bbdce49 100644 --- a/src/optimizer-page/data/slice.test.ts +++ b/src/optimizer-page/data/slice.test.ts @@ -1,5 +1,11 @@ -import { AnyAction, configureStore, ThunkMiddleware } from '@reduxjs/toolkit'; -import { ToolkitStore } from '@reduxjs/toolkit/dist/configureStore'; +import { + configureStore, + type EnhancedStore, + type StoreEnhancer, + type ThunkDispatch, + type Tuple, + type UnknownAction, +} from '@reduxjs/toolkit'; import { CourseOptimizerState, reducer, @@ -19,7 +25,9 @@ import { } from './slice'; describe('courseOptimizer slice', () => { - let store: ToolkitStore]>; + let store: EnhancedStore; + }>, StoreEnhancer]>>; beforeEach(() => { store = configureStore({ reducer }); diff --git a/src/pages-and-resources/discussions/DiscussionsSettings.test.jsx b/src/pages-and-resources/discussions/DiscussionsSettings.test.jsx index e49189564..f842b0dae 100644 --- a/src/pages-and-resources/discussions/DiscussionsSettings.test.jsx +++ b/src/pages-and-resources/discussions/DiscussionsSettings.test.jsx @@ -398,13 +398,7 @@ describe.each([ }, }); - store = initializeStore({ - models: { - courseDetails: { - [courseId]: {}, - }, - }, - }); + store = initializeStore(); axiosMock = new MockAdapter(getAuthenticatedHttpClient()); axiosMock.onGet(getDiscussionsProvidersUrl(courseId)) diff --git a/src/store.ts b/src/store.ts index 6ef919c12..6325b719e 100644 --- a/src/store.ts +++ b/src/store.ts @@ -89,6 +89,6 @@ export default function initializeStore(preloadedState: Partial + initialState?: Partial, } = {}) { initializeMockApp({ authenticatedUser: user, }); - reduxStore = initializeReduxStore(initialState as any); + reduxStore = initializeReduxStore(initialState); queryClient = new QueryClient({ defaultOptions: { queries: {