Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import * as R from 'ramda'
- import { handleAction, handleActions, combineActions } from 'redux-actions'
- import { combineReducers } from 'redux'
- import {
- GET_ALL_ISSUES_REQUEST,
- GET_ALL_ISSUES_SUCCESS,
- GET_ALL_ISSUES_FAILURE,
- GET_MORE_ISSUES_REQUEST,
- GET_MORE_ISSUES_SUCCESS,
- GET_MORE_ISSUES_FAILURE,
- SET_SEARCH_STRING,
- GET_CURRENT_ISSUE_REQUEST,
- GET_CURRENT_ISSUE_SUCCESS,
- GET_CURRENT_ISSUE_FAILURE,
- GET_ALL_FILTERS_REQUEST,
- GET_ALL_FILTERS_SUCCESS,
- GET_ALL_FILTERS_FAILURE,
- GET_MORE_FILTERS_REQUEST,
- GET_MORE_FILTERS_SUCCESS,
- GET_MORE_FILTERS_FAILURE,
- TOGGLE_SELECTED_FILTER_SUCCESS,
- GET_SUB_FILTERS_REQUEST,
- GET_SUB_FILTERS_SUCCESS,
- GET_SUB_FILTERS_FAILURE,
- TOGGLE_SELECTED_SUB_FILTER,
- GET_USER_FILTERS_REQUEST,
- GET_USER_FILTERS_SUCCESS,
- GET_USER_FILTERS_FAILURE,
- TOGGLE_SELECTED_USER_FILTERS,
- SET_ACTIVE_FILTER,
- DELETE_ACTIVE_FILTER,
- CLEAR_ACTIVE_FILTERS,
- CONFIRM_ISSUE_REQUEST,
- CONFIRM_ISSUE_SUCCESS,
- CONFIRM_ISSUE_FAILURE,
- CANCEL_CONFIRM_ISSUE_REQUEST,
- CANCEL_CONFIRM_ISSUE_SUCCESS,
- CANCEL_CONFIRM_ISSUE_FAILURE,
- SET_GEOMARK_REQUEST,
- SET_GEOMARK_SUCCESS,
- SET_GEOMARK_FAILURE,
- GET_ISSUE_HISTORY_SUCCESS,
- GET_ISSUE_HISTORY_FAILURE,
- SET_CURRENT_CRITERIAS,
- GET_TRANSITIONS_WITH_REASONS_REQUEST,
- GET_TRANSITIONS_WITH_REASONS_SUCCESS,
- GET_TRANSITIONS_WITH_REASONS_FAILURE,
- GET_TRANSITION_REASONS_REQUEST,
- GET_TRANSITION_REASONS_SUCCESS,
- GET_TRANSITION_REASONS_FAILURE,
- CHANGE_ISSUE_STATUS_REQUEST,
- CHANGE_ISSUE_STATUS_SUCCESS,
- CHANGE_ISSUE_STATUS_FAILURE,
- SET_CURRENT_SORT_FIELD,
- SET_SORT_DIRECTION,
- DELETE_GEOMARK_SUCCESS,
- DELETE_GEOMARK_FAILURE,
- } from './actions'
- const allIssues = handleActions(
- {
- [GET_ALL_ISSUES_SUCCESS]: (_, { payload }) => payload,
- [GET_ALL_ISSUES_FAILURE]: R.always([]),
- [GET_MORE_ISSUES_SUCCESS]: (state, { payload }) => R.concat(state, payload),
- },
- [],
- )
- const searchString = handleAction(
- SET_SEARCH_STRING,
- (_, { payload }) => payload,
- '',
- )
- const isLoadingIssues = handleActions(
- {
- [GET_ALL_ISSUES_REQUEST]: R.T,
- [combineActions(GET_ALL_ISSUES_SUCCESS, GET_ALL_ISSUES_FAILURE)]: R.F,
- },
- false,
- )
- const isLoadingMoreIssues = handleActions(
- {
- [GET_MORE_ISSUES_REQUEST]: R.T,
- [combineActions(GET_MORE_ISSUES_SUCCESS, GET_MORE_ISSUES_FAILURE)]: R.F,
- },
- false,
- )
- const currentIssue = handleActions(
- {
- [GET_CURRENT_ISSUE_SUCCESS]: (_, { payload }) => payload,
- [GET_CURRENT_ISSUE_FAILURE]: R.always({}),
- },
- {},
- )
- const isLoadingCurrentIssue = handleActions(
- {
- [combineActions(
- GET_CURRENT_ISSUE_REQUEST,
- CONFIRM_ISSUE_REQUEST,
- CANCEL_CONFIRM_ISSUE_REQUEST,
- SET_GEOMARK_REQUEST,
- CHANGE_ISSUE_STATUS_REQUEST,
- DELETE_GEOMARK_REQUEST,
- )]: R.T,
- [combineActions(
- GET_CURRENT_ISSUE_SUCCESS,
- GET_CURRENT_ISSUE_FAILURE,
- CONFIRM_ISSUE_SUCCESS,
- CONFIRM_ISSUE_FAILURE,
- DELETE_GEOMARK_SUCCESS,
- DELETE_GEOMARK_FAILURE,
- CANCEL_CONFIRM_ISSUE_SUCCESS,
- CANCEL_CONFIRM_ISSUE_FAILURE,
- SET_GEOMARK_SUCCESS,
- SET_GEOMARK_FAILURE,
- CHANGE_ISSUE_STATUS_SUCCESS,
- CHANGE_ISSUE_STATUS_FAILURE,
- )]: R.F,
- },
- {},
- )
- const filters = handleActions(
- {
- [GET_ALL_FILTERS_SUCCESS]: (_, { payload }) =>
- R.map(R.assoc('selected', false))(payload),
- [GET_MORE_FILTERS_SUCCESS]: (state, { payload }) =>
- R.concat(state, R.map(R.assoc('selected', false))(payload)),
- [GET_ALL_FILTERS_FAILURE]: R.always([]),
- [TOGGLE_SELECTED_FILTER_SUCCESS]: (state, { payload }) =>
- R.map(
- R.ifElse(
- R.propEq('Id', payload),
- R.evolve({ selected: R.not }),
- R.identity,
- ),
- )(state),
- },
- [],
- )
- const isLoadingFilters = handleActions(
- {
- [GET_ALL_FILTERS_REQUEST]: R.T,
- [GET_ALL_FILTERS_SUCCESS]: R.F,
- [GET_ALL_FILTERS_FAILURE]: R.F,
- },
- false,
- )
- const subFilters = handleActions(
- {
- [GET_SUB_FILTERS_SUCCESS]: (_, { payload }) => payload,
- [GET_SUB_FILTERS_FAILURE]: R.always([]),
- },
- [],
- )
- const currentSubFilter = handleAction(
- TOGGLE_SELECTED_SUB_FILTER,
- (_, { payload }) => payload,
- {},
- )
- const isLoadingSubFilters = handleActions(
- {
- [GET_ALL_FILTERS_REQUEST]: R.T,
- [GET_ALL_FILTERS_SUCCESS]: R.F,
- [GET_ALL_FILTERS_FAILURE]: R.F,
- [GET_SUB_FILTERS_REQUEST]: R.T,
- [GET_SUB_FILTERS_SUCCESS]: R.F,
- [GET_SUB_FILTERS_FAILURE]: R.F,
- },
- false,
- )
- const userFilters = handleActions(
- {
- [GET_USER_FILTERS_SUCCESS]: (_, { payload }) =>
- R.map(R.assoc('selected', false))(payload),
- [GET_USER_FILTERS_FAILURE]: R.always([]),
- },
- [],
- )
- const currentUserFilter = handleAction(
- TOGGLE_SELECTED_USER_FILTERS,
- (_, { payload }) => payload,
- {},
- )
- const isLoadingUserFilters = handleActions(
- {
- [GET_USER_FILTERS_REQUEST]: R.T,
- [GET_USER_FILTERS_SUCCESS]: R.F,
- [GET_USER_FILTERS_FAILURE]: R.F,
- },
- false,
- )
- const activeFilters = handleActions(
- {
- [SET_ACTIVE_FILTER]: (_, { payload }) => payload,
- [DELETE_ACTIVE_FILTER]: (state, { payload }) => R.remove(payload, 1, state),
- [CLEAR_ACTIVE_FILTERS]: R.always([]),
- },
- [],
- )
- const issueHistory = handleActions(
- {
- [GET_ISSUE_HISTORY_SUCCESS]: (_, { payload }) => payload,
- [GET_ISSUE_HISTORY_FAILURE]: R.always([]),
- },
- [],
- )
- const currentCriterias = handleAction(
- SET_CURRENT_CRITERIAS,
- (_, { payload }) => payload,
- [],
- )
- const transitionsWithReasons = handleActions(
- {
- [GET_TRANSITIONS_WITH_REASONS_SUCCESS]: (_, { payload }) => payload,
- [GET_TRANSITIONS_WITH_REASONS_FAILURE]: R.always([]),
- },
- [],
- )
- const transitionReasons = handleActions(
- {
- [GET_TRANSITION_REASONS_SUCCESS]: (_, { payload }) => payload,
- [GET_TRANSITION_REASONS_FAILURE]: R.always([]),
- },
- [],
- )
- const isLoadingTransitionsWithReasons = handleActions(
- {
- [GET_TRANSITIONS_WITH_REASONS_REQUEST]: R.T,
- [combineActions(
- GET_TRANSITIONS_WITH_REASONS_SUCCESS,
- GET_TRANSITIONS_WITH_REASONS_FAILURE,
- )]: R.F,
- },
- false,
- )
- const isLoadingTransitionReasons = handleActions(
- {
- [GET_TRANSITION_REASONS_REQUEST]: R.T,
- [combineActions(
- GET_TRANSITION_REASONS_SUCCESS,
- GET_TRANSITION_REASONS_FAILURE,
- )]: R.F,
- },
- false,
- )
- const isLoadingChangeIssueStatus = handleActions(
- {
- [CHANGE_ISSUE_STATUS_REQUEST]: R.T,
- [combineActions(
- CHANGE_ISSUE_STATUS_SUCCESS,
- CHANGE_ISSUE_STATUS_FAILURE,
- )]: R.F,
- },
- false,
- )
- const currentSortField = handleAction(
- SET_CURRENT_SORT_FIELD,
- (_, { payload }) => payload,
- 'Площадка',
- )
- const sortDirection = handleAction(
- SET_SORT_DIRECTION,
- (_, { payload }) => payload,
- 'desc',
- )
- const issuesReducers = combineReducers({
- allIssues,
- searchString,
- currentIssue,
- isLoadingIssues,
- isLoadingMoreIssues,
- isLoadingCurrentIssue,
- filters,
- isLoadingFilters,
- subFilters,
- currentSubFilter,
- isLoadingSubFilters,
- userFilters,
- currentUserFilter,
- isLoadingUserFilters,
- activeFilters,
- issueHistory,
- currentCriterias,
- transitionsWithReasons,
- transitionReasons,
- isLoadingTransitionsWithReasons,
- isLoadingTransitionReasons,
- isLoadingChangeIssueStatus,
- currentSortField,
- sortDirection,
- })
- export default issuesReducers
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement