Files
astuto/app/javascript/reducers/siteSettingsReducer.ts

142 lines
3.9 KiB
TypeScript
Raw Normal View History

import {
BoardsRequestActionTypes,
BOARDS_REQUEST_START,
BOARDS_REQUEST_SUCCESS,
BOARDS_REQUEST_FAILURE,
} from '../actions/Board/requestBoards';
import {
BoardSubmitActionTypes,
BOARD_SUBMIT_START,
BOARD_SUBMIT_SUCCESS,
BOARD_SUBMIT_FAILURE,
} from '../actions/Board/submitBoard';
import {
BoardOrderUpdateActionTypes,
BOARD_ORDER_UPDATE_START,
BOARD_ORDER_UPDATE_SUCCESS,
BOARD_ORDER_UPDATE_FAILURE,
} from '../actions/Board/updateBoardOrder';
import {
BoardUpdateActionTypes,
BOARD_UPDATE_START,
BOARD_UPDATE_SUCCESS,
BOARD_UPDATE_FAILURE,
} from '../actions/Board/updateBoard';
import {
BoardDeleteActionTypes,
BOARD_DELETE_START,
BOARD_DELETE_SUCCESS,
BOARD_DELETE_FAILURE,
} from '../actions/Board/deleteBoard';
2022-05-01 18:00:38 +02:00
import {
PostStatusOrderUpdateActionTypes,
POSTSTATUS_ORDER_UPDATE_START,
POSTSTATUS_ORDER_UPDATE_SUCCESS,
POSTSTATUS_ORDER_UPDATE_FAILURE,
2022-05-07 11:27:07 +02:00
} from '../actions/PostStatus/updatePostStatusOrder';
2022-05-01 18:00:38 +02:00
import {
PostStatusDeleteActionTypes,
POST_STATUS_DELETE_START,
POST_STATUS_DELETE_SUCCESS,
POST_STATUS_DELETE_FAILURE,
2022-05-07 11:27:07 +02:00
} from '../actions/PostStatus/deletePostStatus';
2022-05-01 18:00:38 +02:00
import {
PostStatusSubmitActionTypes,
POSTSTATUS_SUBMIT_START,
POSTSTATUS_SUBMIT_SUCCESS,
POSTSTATUS_SUBMIT_FAILURE,
2022-05-07 11:27:07 +02:00
} from '../actions/PostStatus/submitPostStatus';
2022-05-01 18:00:38 +02:00
import {
PostStatusUpdateActionTypes,
POSTSTATUS_UPDATE_START,
POSTSTATUS_UPDATE_SUCCESS,
POSTSTATUS_UPDATE_FAILURE,
2022-05-07 11:27:07 +02:00
} from '../actions/PostStatus/updatePostStatus';
2022-05-01 18:00:38 +02:00
import siteSettingsBoardsReducer, { SiteSettingsBoardsState } from './SiteSettings/boardsReducer';
2022-05-01 18:00:38 +02:00
import siteSettingsPostStatusesReducer, { SiteSettingsPostStatusesState } from './SiteSettings/postStatusesReducer';
import siteSettingsRoadmapReducer, { SiteSettingsRoadmapState } from './SiteSettings/roadmapReducer';
2022-05-01 18:00:38 +02:00
interface SiteSettingsState {
boards: SiteSettingsBoardsState;
2022-05-01 18:00:38 +02:00
postStatuses: SiteSettingsPostStatusesState;
roadmap: SiteSettingsRoadmapState;
2022-05-01 18:00:38 +02:00
}
const initialState: SiteSettingsState = {
boards: siteSettingsBoardsReducer(undefined, {} as any),
2022-05-01 18:00:38 +02:00
postStatuses: siteSettingsPostStatusesReducer(undefined, {} as any),
roadmap: siteSettingsRoadmapReducer(undefined, {} as any),
2022-05-01 18:00:38 +02:00
};
const siteSettingsReducer = (
state = initialState,
action:
BoardsRequestActionTypes |
BoardSubmitActionTypes |
BoardUpdateActionTypes |
BoardOrderUpdateActionTypes |
BoardDeleteActionTypes |
PostStatusOrderUpdateActionTypes |
2022-05-01 18:00:38 +02:00
PostStatusDeleteActionTypes |
PostStatusSubmitActionTypes |
PostStatusUpdateActionTypes
): SiteSettingsState => {
switch (action.type) {
case BOARDS_REQUEST_START:
case BOARDS_REQUEST_SUCCESS:
case BOARDS_REQUEST_FAILURE:
case BOARD_SUBMIT_START:
case BOARD_SUBMIT_SUCCESS:
case BOARD_SUBMIT_FAILURE:
case BOARD_UPDATE_START:
case BOARD_UPDATE_SUCCESS:
case BOARD_UPDATE_FAILURE:
case BOARD_ORDER_UPDATE_START:
case BOARD_ORDER_UPDATE_SUCCESS:
case BOARD_ORDER_UPDATE_FAILURE:
case BOARD_DELETE_START:
case BOARD_DELETE_SUCCESS:
case BOARD_DELETE_FAILURE:
return {
...state,
boards: siteSettingsBoardsReducer(state.boards, action),
};
case POSTSTATUS_SUBMIT_START:
case POSTSTATUS_SUBMIT_SUCCESS:
case POSTSTATUS_SUBMIT_FAILURE:
2022-05-01 18:00:38 +02:00
case POSTSTATUS_ORDER_UPDATE_START:
case POSTSTATUS_ORDER_UPDATE_SUCCESS:
case POSTSTATUS_ORDER_UPDATE_FAILURE:
case POST_STATUS_DELETE_START:
case POST_STATUS_DELETE_SUCCESS:
case POST_STATUS_DELETE_FAILURE:
return {
...state,
postStatuses: siteSettingsPostStatusesReducer(state.postStatuses, action),
};
2022-05-01 18:00:38 +02:00
case POSTSTATUS_UPDATE_START:
case POSTSTATUS_UPDATE_SUCCESS:
case POSTSTATUS_UPDATE_FAILURE:
return {
...state,
postStatuses: siteSettingsPostStatusesReducer(state.postStatuses, action),
roadmap: siteSettingsRoadmapReducer(state.roadmap, action),
2022-05-01 18:00:38 +02:00
};
default:
return state;
}
};
export default siteSettingsReducer;