import {createSlice, PayloadAction} from '@reduxjs/toolkit' import {IWidgets} from '../../types' export const widgetsInitialState: IWidgets = { widgets: [] } const widgetsSlice = createSlice({ name: 'widgets', initialState: widgetsInitialState, reducers: { writeData: ( state, action: PayloadAction<{ widgetName: string data: object }> ) => { const {widgetName, data} = action.payload // find or create widget object in state const widget = state.widgets.find(w => w.name === widgetName) if (widget) { widget.data = data } else { state.widgets.push({ name: widgetName, data }) } } } }) export const {writeData} = widgetsSlice.actions export default widgetsSlice.reducer