reducers.ts 1.2 KB

1234567891011121314151617181920212223242526272829303132333435
  1. import { Organization, OrganizationPreferences, OrganizationState } from 'app/types';
  2. import { Action, ActionTypes } from './actions';
  3. const initialState: OrganizationState = {
  4. organization: {} as Organization,
  5. preferences: {} as OrganizationPreferences,
  6. };
  7. const organizationReducer = (state = initialState, action: Action): OrganizationState => {
  8. switch (action.type) {
  9. case ActionTypes.LoadOrganization:
  10. return { ...state, organization: action.payload };
  11. case ActionTypes.LoadPreferences:
  12. return { ...state, preferences: action.payload };
  13. case ActionTypes.SetOrganizationName:
  14. return { ...state, organization: { ...state.organization, name: action.payload } };
  15. case ActionTypes.SetOrganizationTheme:
  16. return { ...state, preferences: { ...state.preferences, theme: action.payload } };
  17. case ActionTypes.SetOrganizationHomeDashboard:
  18. return { ...state, preferences: { ...state.preferences, homeDashboardId: action.payload } };
  19. case ActionTypes.SetOrganizationTimezone:
  20. return { ...state, preferences: { ...state.preferences, timezone: action.payload } };
  21. }
  22. return state;
  23. };
  24. export default {
  25. organization: organizationReducer,
  26. };