import { createSlice, PayloadAction } from "@reduxjs/toolkit"; interface State { memoVisibility: Visibility; resourceList: Resource[]; relationList: MemoRelation[]; editMemoId?: MemoId; } const editorSlice = createSlice({ name: "editor", initialState: { memoVisibility: "PRIVATE", resourceList: [], relationList: [], } as State, reducers: { setEditMemoId: (state, action: PayloadAction>) => { return { ...state, editMemoId: action.payload, }; }, setMemoVisibility: (state, action: PayloadAction) => { return { ...state, memoVisibility: action.payload, }; }, setResourceList: (state, action: PayloadAction) => { return { ...state, resourceList: action.payload, }; }, setRelationList: (state, action: PayloadAction) => { return { ...state, relationList: action.payload, }; }, }, }); export const { setEditMemoId, setMemoVisibility, setResourceList, setRelationList } = editorSlice.actions; export default editorSlice.reducer;