ca-mfe-page-scoring-ui
Version:
This is a react shell for the SPGI Platform MFE implementation
84 lines (80 loc) • 2.64 kB
text/typescript
import { createSlice } from '@reduxjs/toolkit';
const initialState = {
generatedScore: {},
riskGaugeData: {},
generatedScoreTracker: {},
isLoadingTrackerScore: false,
isLoadingScore: true,
isGenerateScoreCall: false,
isPropUploaded : false,
generateScorePayload: {}
};
export const generateScoreSlice = createSlice({
name: 'generateScore',
initialState,
reducers: {
setGenerateScore: (state, action) => {
const { payload } = action;
state.generatedScore = payload;
state.isGenerateScoreCall = true;
},
removeStandaloneScore: state => {
if (state.generatedScoreTracker.standalone) {
const updatedOb: any = { ...state.generatedScoreTracker };
delete updatedOb.standalone;
state.generatedScoreTracker = updatedOb;
}
},
removeAllExceptStandalone: (state, action) => {
const scoreWithFinancials = action.payload;
const toRemoveObjArr = scoreWithFinancials ? ['rgBenchmark']: ['standalone'];
Object.keys(state.generatedScoreTracker).forEach(trackerKey => {
if(
typeof state.generatedScoreTracker[trackerKey] === 'object'
&& !toRemoveObjArr.includes(trackerKey)
){
state.generatedScoreTracker[trackerKey] = null;
}
});
},
setIsGenerateScoreCall: (state, action) => {
state.isGenerateScoreCall = action.payload;
},
setLoadingState: (state, action) => {
const { payload } = action;
if (typeof payload?.trackerScoreLoader === 'boolean') {
state.isLoadingTrackerScore = payload?.trackerScoreLoader;
}
if (typeof payload?.scoreLoader === 'boolean') {
state.isLoadingScore = payload?.scoreLoader;
}
},
setGenerateScoreTracker: (state, action) => {
const { payload } = action;
state.generatedScoreTracker = payload;
state.isLoadingTrackerScore = false;
},
setRiskGaugeData: (state, action) => {
state.riskGaugeData = action.payload;
state.isLoadingScore = false;
},
setGenerateScorePayload: (state, action) => {
state.generateScorePayload = action.payload;
},
setPropUploaded: (state, action) => {
state.isPropUploaded = action.payload;
}
}
});
export const {
setGenerateScore,
setGenerateScoreTracker,
removeStandaloneScore,
setLoadingState,
setRiskGaugeData,
setIsGenerateScoreCall,
removeAllExceptStandalone,
setGenerateScorePayload,
setPropUploaded
} = generateScoreSlice.actions;
export default generateScoreSlice.reducer;