Skip to content

Commit 659e460

Browse files
committed
fix: remove combinedReducer
1 parent 5430875 commit 659e460

File tree

2 files changed

+45
-26
lines changed

2 files changed

+45
-26
lines changed

src/store/configureStore.ts

Lines changed: 45 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import {listenForHistoryChange} from 'redux-location-state';
77
import {YdbEmbeddedAPI} from '../services/api';
88

99
import {getUrlData} from './getUrlData';
10-
import combinedRootReducer, {rootReducer} from './reducers';
10+
import {rootReducer} from './reducers';
1111
import {api as storeApi} from './reducers/api';
1212
import {syncUserSettingsFromLS} from './reducers/settings/settings';
1313
import {UPDATE_REF} from './reducers/tooltip';
@@ -54,40 +54,67 @@ export const codeAssistBackend = window.code_assist_backend;
5454

5555
const isSingleClusterMode = `${metaBackend}` === 'undefined';
5656

57-
export interface ConfigureStoreOptions {
58-
aRootReducer?: Reducer;
57+
interface BaseStoreOptions {
5958
singleClusterMode?: boolean;
6059
api?: YdbEmbeddedAPI;
61-
additionalReducers?: Record<string, Reducer>;
6260
}
6361

64-
export function configureStore({
65-
aRootReducer,
66-
singleClusterMode = isSingleClusterMode,
67-
api = new YdbEmbeddedAPI({webVersion, withCredentials: !customBackend}),
68-
additionalReducers = {},
69-
}: ConfigureStoreOptions = {}) {
62+
interface StoreOptionsWithCustomRootReducer extends BaseStoreOptions {
63+
/**
64+
* Custom root reducer that completely replaces the default rootReducer.
65+
* ⚠️ Cannot be used together with additionalReducers
66+
*/
67+
aRootReducer: Reducer;
68+
/**
69+
* @deprecated When using aRootReducer, additionalReducers cannot be used
70+
*/
71+
additionalReducers?: undefined;
72+
}
73+
74+
interface StoreOptionsWithAdditionalReducers extends BaseStoreOptions {
75+
/**
76+
* @deprecated When using additionalReducers, aRootReducer cannot be used
77+
*/
78+
aRootReducer?: undefined;
79+
/**
80+
* Additional reducers to be merged with the default rootReducer.
81+
* ⚠️ Cannot be used together with aRootReducer
82+
*/
83+
additionalReducers: Record<string, Reducer>;
84+
}
85+
86+
interface StoreOptionsDefault extends BaseStoreOptions {
87+
aRootReducer?: undefined;
88+
additionalReducers?: undefined;
89+
}
90+
91+
export type ConfigureStoreOptions =
92+
| StoreOptionsWithCustomRootReducer
93+
| StoreOptionsWithAdditionalReducers
94+
| StoreOptionsDefault;
95+
96+
export function configureStore(options: ConfigureStoreOptions = {}) {
97+
const {
98+
aRootReducer,
99+
singleClusterMode = isSingleClusterMode,
100+
api = new YdbEmbeddedAPI({webVersion, withCredentials: !customBackend}),
101+
additionalReducers = {},
102+
} = options;
103+
70104
({backend, basename, clusterName} = getUrlData({
71105
singleClusterMode,
72106
customBackend,
73107
}));
74108
const history = createBrowserHistory({basename});
75-
76-
// Create the final reducer
77109
let finalReducer: Reducer;
78110

79111
if (aRootReducer) {
80-
// If custom root reducer is provided, use it
81112
finalReducer = aRootReducer;
82-
} else if (Object.keys(additionalReducers).length > 0) {
83-
// If additional reducers are provided, combine them with the default ones
113+
} else {
84114
finalReducer = combineReducers({
85115
...rootReducer,
86116
...additionalReducers,
87117
});
88-
} else {
89-
// Otherwise use the default combined reducer
90-
finalReducer = combinedRootReducer;
91118
}
92119

93120
const store = _configureStore(finalReducer, history, {singleClusterMode}, [

src/store/reducers/index.ts

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
import {combineReducers} from '@reduxjs/toolkit';
2-
31
import {api} from './api';
42
import authentication from './authentication/authentication';
53
import cluster from './cluster/cluster';
@@ -39,9 +37,3 @@ export const rootReducer = {
3937
fullscreen,
4038
clusters,
4139
};
42-
43-
const combinedReducer = combineReducers({
44-
...rootReducer,
45-
});
46-
47-
export default combinedReducer;

0 commit comments

Comments
 (0)