You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
memos/web/src/store/modules/editor.ts

40 lines
926 B
TypeScript

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