-
Notifications
You must be signed in to change notification settings - Fork 91
/
registerReducers.js
41 lines (38 loc) · 1.53 KB
/
registerReducers.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import Injector from 'lib/Injector';
import { combineReducers } from 'redux';
import { reducer as ReduxFormReducer } from 'redux-form';
import ConfigReducer from 'state/config/ConfigReducer';
import SchemaReducer from 'state/schema/SchemaReducer';
import RecordsReducer from 'state/records/RecordsReducer';
import BreadcrumbsReducer from 'state/breadcrumbs/BreadcrumbsReducer';
import TreeDropdownFieldReducer from 'state/treeDropdownField/TreeDropdownFieldReducer';
import TabsReducer from 'state/tabs/TabsReducer';
import MobileMenuReducer from 'state/mobileMenu/MobileMenuReducer';
import UnsavedFormsReducer from 'state/unsavedForms/UnsavedFormsReducer';
import usedOnReducer from 'state/usedOn/usedOnReducer';
import applyFormMiddleware from 'lib/dependency-injection/applyFormMiddleware';
import ViewModeReducer from 'state/viewMode/ViewModeReducer';
import ToastsReducer from 'state/toasts/ToastsReducer';
export default (extra = {}) => {
const FormReducer = combineReducers({
formState: ReduxFormReducer,
formSchemas: SchemaReducer,
});
Injector.reducer.registerMany({
config: ConfigReducer,
form: FormReducer,
records: RecordsReducer,
breadcrumbs: BreadcrumbsReducer,
treeDropdownField: TreeDropdownFieldReducer,
tabs: TabsReducer,
mobileMenu: MobileMenuReducer,
unsavedForms: UnsavedFormsReducer,
usedOn: usedOnReducer,
viewMode: ViewModeReducer,
toasts: ToastsReducer,
...extra,
});
Injector.transform('admin', (updater) => {
updater.reducer('form', applyFormMiddleware);
});
};