import { createSlice, PayloadAction } from '@reduxjs/toolkit' export interface PipelineState { id: string params: { [key: string]: string } consume: { [key: string]: string } produce: { [key: string]: string } } const initialState: PipelineState[] = [] export const pipelineSlice = createSlice({ name: 'pipeline', initialState, reducers: { addPipeline: (state, action: PayloadAction) => { state.push({ ...action.payload }) return state }, updatePipeline: (state, action: PayloadAction>) => { const index = state.findIndex(line => line.id === action.payload.id) state[index] = { ...state[index], ...action.payload } return state }, removePipeline: ( state, action: PayloadAction> ) => { state = state.filter(relation => relation.id !== action.payload.id) return state }, }, }) export const { addPipeline, updatePipeline, removePipeline, } = pipelineSlice.actions export default pipelineSlice.reducer