48 lines
1.2 KiB
JavaScript
48 lines
1.2 KiB
JavaScript
import { createSlice, current } from '@reduxjs/toolkit';
|
|
var initialState = {
|
|
dots: [],
|
|
areas: [],
|
|
lines: []
|
|
};
|
|
export var referenceElementsSlice = createSlice({
|
|
name: 'referenceElements',
|
|
initialState,
|
|
reducers: {
|
|
addDot: (state, action) => {
|
|
state.dots.push(action.payload);
|
|
},
|
|
removeDot: (state, action) => {
|
|
var index = current(state).dots.findIndex(dot => dot === action.payload);
|
|
if (index !== -1) {
|
|
state.dots.splice(index, 1);
|
|
}
|
|
},
|
|
addArea: (state, action) => {
|
|
state.areas.push(action.payload);
|
|
},
|
|
removeArea: (state, action) => {
|
|
var index = current(state).areas.findIndex(area => area === action.payload);
|
|
if (index !== -1) {
|
|
state.areas.splice(index, 1);
|
|
}
|
|
},
|
|
addLine: (state, action) => {
|
|
state.lines.push(action.payload);
|
|
},
|
|
removeLine: (state, action) => {
|
|
var index = current(state).lines.findIndex(line => line === action.payload);
|
|
if (index !== -1) {
|
|
state.lines.splice(index, 1);
|
|
}
|
|
}
|
|
}
|
|
});
|
|
export var {
|
|
addDot,
|
|
removeDot,
|
|
addArea,
|
|
removeArea,
|
|
addLine,
|
|
removeLine
|
|
} = referenceElementsSlice.actions;
|
|
export var referenceElementsReducer = referenceElementsSlice.reducer; |