+export interface RootState {
+ auth: AuthState;
+ projects: ProjectState;
+ collectionCreation: CollectionCreatorState;
+ router: RouterState;
+ dataExplorer: DataExplorerState;
+ sidePanel: SidePanelState;
+ collectionPanel: CollectionPanelState;
+ detailsPanel: DetailsPanelState;
+ contextMenu: ContextMenuState;
+ favorites: FavoritesState;
+ snackbar: SnackbarState;
+}
+
+const rootReducer = combineReducers({
+ auth: authReducer,
+ projects: projectsReducer,
+ collectionCreation: collectionCreationReducer,
+ router: routerReducer,
+ dataExplorer: dataExplorerReducer,
+ sidePanel: sidePanelReducer,
+ collectionPanel: collectionPanelReducer,
+ detailsPanel: detailsPanelReducer,
+ contextMenu: contextMenuReducer,
+ form: formReducer,
+ favorites: favoritesReducer,
+ snackbar: snackbarReducer,
+});
+
+export function configureStore(history: History) {
+ const projectPanelMiddleware = dataExplorerMiddleware(
+ new ProjectPanelMiddlewareService(PROJECT_PANEL_ID)
+ );
+ const favoritePanelMiddleware = dataExplorerMiddleware(
+ new FavoritePanelMiddlewareService(FAVORITE_PANEL_ID)
+ );
+