import { createSlice, PayloadAction } from '@reduxjs/toolkit' export interface RelationState { id: string actName: string label: string x: number y: number rel: string[] } const initialState: RelationState[] = [] export const relationsSlice = createSlice({ name: 'relations', initialState, reducers: { addRelation: (state, action: PayloadAction) => { state.push({ ...action.payload }) return state }, updateRelation: (state, action: PayloadAction>) => { const index = state.findIndex(({ id }) => id === action.payload.id) state[index] = { ...state[index], ...action.payload } return state }, removeRelation: ( state, action: PayloadAction> ) => { return state.filter(relation => relation.id !== action.payload.id) }, }, }) export const { addRelation, updateRelation, removeRelation, } = relationsSlice.actions export default relationsSlice.reducer