-
Notifications
You must be signed in to change notification settings - Fork 1
/
repos.ts
39 lines (34 loc) · 869 Bytes
/
repos.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";
import { ResponseItem } from "@features/repos/api/getRecommendations";
import { HYDRATE } from "next-redux-wrapper";
export interface RepoState {
reposCount: number;
repos: ResponseItem[];
error: string | null;
}
const initialState: RepoState = {
reposCount: 0,
repos: [],
error: null,
};
export const repoSlice = createSlice({
name: "github",
initialState,
reducers: {
successGetRepos: (state: RepoState, action: PayloadAction<ResponseItem[]>) => {
state.repos = action.payload;
state.reposCount = 0;
},
},
extraReducers: {
[HYDRATE]: (state, action) => {
console.log(action);
return {
...state,
...action.payload.story,
};
},
},
});
export const { successGetRepos } = repoSlice.actions;
export default repoSlice;