UNPKG

@razorpay/blade

Version:

The Design System that powers Razorpay

70 lines (65 loc) 2.12 kB
import { createSlice } from '../../../@reduxjs/toolkit/dist/redux-toolkit.modern.js'; import { castDraft } from '../../../immer/dist/immer.js'; /** * This is the data that's coming through main chart `data` prop * Recharts is very flexible in what it accepts so the type is very flexible too. * This will typically be an object, and various components will provide various `dataKey` * that dictates how to pull data from that object. * * TL;DR: before dataKey * * @inline */ /** * So this is the same unknown type as ChartData but this is after the dataKey has been applied. * We still don't know what the type is - that depends on what exactly it was before the dataKey application, * and the dataKey can return whatever anyway - but let's keep it separate as a form of documentation. * * TL;DR: ChartData after dataKey. */ var initialChartDataState = { chartData: undefined, computedData: undefined, dataStartIndex: 0, dataEndIndex: 0 }; var chartDataSlice = createSlice({ name: 'chartData', initialState: initialChartDataState, reducers: { setChartData(state, action) { state.chartData = castDraft(action.payload); if (action.payload == null) { state.dataStartIndex = 0; state.dataEndIndex = 0; return; } if (action.payload.length > 0 && state.dataEndIndex !== action.payload.length - 1) { state.dataEndIndex = action.payload.length - 1; } }, setComputedData(state, action) { state.computedData = action.payload; }, setDataStartEndIndexes(state, action) { var { startIndex, endIndex } = action.payload; if (startIndex != null) { state.dataStartIndex = startIndex; } if (endIndex != null) { state.dataEndIndex = endIndex; } } } }); var { setChartData, setDataStartEndIndexes, setComputedData } = chartDataSlice.actions; var chartDataReducer = chartDataSlice.reducer; export { chartDataReducer, initialChartDataState, setChartData, setComputedData, setDataStartEndIndexes }; //# sourceMappingURL=chartDataSlice.js.map