UNPKG

@equinor/fusion-react-power-bi

Version:
48 lines 1.99 kB
import { createReducer } from 'typesafe-actions'; import { Status, removeStatus } from './state'; import { actions } from './actions'; export const fetchReport = (initial) => createReducer(initial).handleAction(actions.fetchReport.success, (state, action) => ({ ...state, report: action.payload, status: removeStatus(state, Status.LoadingReport), })); export const fetchReportDescription = (initial) => createReducer(initial).handleAction(actions.fetchReportDescription.success, (state, action) => ({ ...state, description: action.payload, status: removeStatus(state, Status.LoadingDescription), })); export const fetchReportAccessDescription = (initial) => createReducer(initial).handleAction(actions.fetchReportAccessDescription.success, (state, action) => ({ ...state, accessDescription: action.payload, status: removeStatus(state, Status.LoadingAccessDescription), })); export const fetchReportRequirements = (initial) => createReducer(initial).handleAction(actions.fetchReportRequirements.success, (state, action) => ({ ...state, requirements: action.payload, status: removeStatus(state, Status.LoadingRequirements), })); export const initialize = (initial) => createReducer(initial) .handleAction(actions.initialize.request, (state, action) => ({ id: action.payload, errors: [], status: [ Status.LoadingReport, Status.LoadingDescription, Status.LoadingAccessDescription, Status.LoadingRequirements, ], })) .handleAction(actions.initialize.success, (state, _action) => ({ ...state, status: [], initialized: true, })); export const reducer = (initial) => createReducer(initial, { ...fetchReport(initial).handlers, ...fetchReportDescription(initial).handlers, ...fetchReportAccessDescription(initial).handlers, ...fetchReportRequirements(initial).handlers, ...initialize(initial).handlers, }); export default reducer; //# sourceMappingURL=reducer.js.map