30 lines
795 B
TypeScript
30 lines
795 B
TypeScript
import { createSlice, PayloadAction } from "@reduxjs/toolkit";
|
|
import { ProjectSchema } from "@/types/ProjectSchema";
|
|
|
|
interface ProjectsState {
|
|
projects: ProjectSchema[];
|
|
selectedProject: ProjectSchema | null;
|
|
}
|
|
|
|
const initialState: ProjectsState = {
|
|
projects: [],
|
|
selectedProject: null,
|
|
};
|
|
|
|
export const projectsSlice = createSlice({
|
|
name: "projects",
|
|
initialState,
|
|
reducers: {
|
|
setProjects: (state, action: PayloadAction<ProjectSchema[]>) => {
|
|
state.projects = action.payload;
|
|
},
|
|
selectProject: (state, action: PayloadAction<ProjectSchema>) => {
|
|
state.selectedProject = action.payload;
|
|
},
|
|
},
|
|
});
|
|
|
|
export const { setProjects, selectProject } = projectsSlice.actions;
|
|
|
|
export default projectsSlice.reducer;
|