Skip to content

Commit 423d24b

Browse files
committed
chore(npm): remplace fetch-intercept par un middleware de rtk query (#627)
1 parent 44ec13c commit 423d24b

File tree

6 files changed

+17
-63
lines changed

6 files changed

+17
-63
lines changed

frontend/package.json

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,6 @@
4747
"eslint-plugin-react": "^7.37.5",
4848
"eslint-plugin-react-hooks": "^5.2.0",
4949
"eslint-plugin-storybook": "^10.2.14",
50-
"fetch-intercept": "^2.4.0",
5150
"i18next": "^25.8.13",
5251
"maestro-shared": "^0.0.1",
5352
"maplibre-gl": "^5.19.0",
@@ -63,8 +62,7 @@
6362
"storybook": "^10.2.14",
6463
"vite": "^7.1.12",
6564
"vite-plugin-pwa": "^1.0.3",
66-
"vite-tsconfig-paths": "^5.1.4",
67-
"whatwg-fetch": "^3.6.20"
65+
"vite-tsconfig-paths": "^5.1.4"
6866
},
6967
"overrides": {
7068
"vite": "$vite"

frontend/src/App.tsx

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import { AppRouteKeys } from 'maestro-shared/schema/AppRouteLinks/AppRouteLinks'
66
import React, { ReactElement } from 'react';
77
import { Provider } from 'react-redux';
88
import { Link, Route, Routes } from 'react-router';
9-
import FetchInterceptor from 'src/components/FetchInterceptor/FetchInterceptor';
109
import Footer from 'src/components/Footer/Footer';
1110
import Header from 'src/components/Header/Header';
1211
import ScrollToTop from 'src/components/ScrollToTop/ScrollToTop';
@@ -58,8 +57,6 @@ function App() {
5857
);
5958
const { isOnline } = useOnLine();
6059

61-
FetchInterceptor();
62-
6360
return (
6461
<React.Suspense fallback={<></>}>
6562
<MascaradeNotice />

frontend/src/components/FetchInterceptor/FetchInterceptor.tsx

Lines changed: 0 additions & 35 deletions
This file was deleted.

frontend/src/store/store.tsx

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,21 @@
1-
import { configureStore } from '@reduxjs/toolkit';
1+
import type { Middleware } from '@reduxjs/toolkit';
2+
import { configureStore, isRejectedWithValue } from '@reduxjs/toolkit';
23
import { api, tagTypes } from 'src/services/api.service';
34
import prescriptionsSlice from 'src/store/reducers/prescriptionsSlice';
45
import samplesSlice from 'src/store/reducers/samplesSlice';
56
import authSlice from './reducers/authSlice';
67

8+
const unauthorizedMiddleware: Middleware = () => (next) => (action) => {
9+
if (
10+
isRejectedWithValue(action) &&
11+
(action.payload as { status?: number })?.status === 401
12+
) {
13+
localStorage.removeItem('authUser');
14+
window.location.replace('/');
15+
}
16+
return next(action);
17+
};
18+
719
export const applicationReducer = {
820
[authSlice.name]: authSlice.reducer,
921
[prescriptionsSlice.name]: prescriptionsSlice.reducer,
@@ -16,7 +28,7 @@ export const store = configureStore({
1628
middleware: (getDefaultMiddleware) =>
1729
getDefaultMiddleware({
1830
serializableCheck: false
19-
}).concat(api.middleware)
31+
}).concat(api.middleware, unauthorizedMiddleware)
2032
});
2133

2234
export type AppState = ReturnType<typeof store.getState>;

knip.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,7 @@ export default {
2323
frontend: {
2424
ignoreDependencies: [
2525
'geojson',
26-
'@vitest/coverage-v8',
27-
//Utilisé de façon indirecte par fetch-intercept
28-
'whatwg-fetch'
26+
'@vitest/coverage-v8'
2927
],
3028
ignore: ['src/serviceWorker.js']
3129
},

package-lock.json

Lines changed: 1 addition & 17 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)