collapse toggle button in main app bar, redux store set up to handle state change...
[arvados-workbench2.git] / src / store / store.ts
index 94f110a09563ab17537b44445b964f650fef2ce5..2925d8f9593461b190dea92b406d6f2567cbc560 100644 (file)
@@ -185,6 +185,22 @@ export function configureStore(history: History, services: ServiceRepository, co
     return createStore(rootReducer, enhancer);
 }
 
+//TODO: put sidePanel items in separate file and import
+export const toggleSidePanel = (collapsedState: boolean) => {
+    return (dispatch) => {
+        dispatch({type: 'TOGGLE_COLLAPSE', payload: !collapsedState})
+    }
+}
+
+const sidePanelInitialState = {
+    collapsedState: false
+}
+
+const sidePanelReducer = (state = sidePanelInitialState, action)=>{
+    if(action.type === 'TOGGLE_COLLAPSE') return {...state, collapsedState: action.payload}
+    return state
+}
+
 const createRootReducer = (services: ServiceRepository) => combineReducers({
     auth: authReducer(services),
     collectionPanel: collectionPanelReducer,
@@ -212,5 +228,6 @@ const createRootReducer = (services: ServiceRepository) => combineReducers({
     virtualMachines: virtualMachinesReducer,
     repositories: repositoriesReducer,
     keepServices: keepServicesReducer,
-    linkAccountPanel: linkAccountPanelReducer
+    linkAccountPanel: linkAccountPanelReducer,
+    sidePanel: sidePanelReducer
 });