-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathresearchSlice.ts
39 lines (35 loc) · 917 Bytes
/
researchSlice.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import { createSlice, PayloadAction } from "@reduxjs/toolkit";
interface ResearchState {
title: string;
draft: string;
files: File[];
publishedDrafts: string[];
}
const initialState: ResearchState = {
title: "",
draft: "",
files: [],
publishedDrafts: [],
};
export const researchSlice = createSlice({
name: "research",
initialState,
reducers: {
setTitle: (state, action: PayloadAction<string>) => {
state.title = action.payload;
},
setDraft: (state, action: PayloadAction<string>) => {
state.draft = action.payload;
},
addFile: (state, action: PayloadAction<File>) => {
state.files.push(action.payload);
},
publishDraft: (state) => {
state.publishedDrafts.push(state.draft);
state.draft = "";
},
},
});
export const { setDraft, addFile, publishDraft, setTitle } =
researchSlice.actions;
export default researchSlice.reducer;