@equinor/fusion-react-power-bi
Version:
React component for displaying an person information
48 lines • 1.99 kB
JavaScript
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