blob: 89b0141b0e2bdf8e91208bad8c0603340efed1ee [file] [log] [blame]
import { createSlice, PayloadAction } from "@reduxjs/toolkit";
import { RootState } from "./store";
/**
* Basic project state -- we store a
* project that has enough information to
* query for git code/whatnot
* TBD
*/
interface ProjectState {
currentProjectID: number | undefined;
hasSelectedProject: boolean;
}
const initialState: ProjectState = {
currentProjectID: undefined, // Nothing to start
hasSelectedProject: false,
};
export const projectSlice = createSlice({
initialState,
name: "project",
reducers: {
setProjectID: (state: ProjectState, action: PayloadAction<number>) => {
state.currentProjectID = action.payload;
state.hasSelectedProject = true;
},
unsetProjectID: (state: ProjectState) => {
state.currentProjectID = undefined;
state.hasSelectedProject = false;
},
},
});
export default projectSlice.reducer;
export const { setProjectID } = projectSlice.actions;
export const selectProjectID = (state: RootState) =>
state.project.currentProjectID;
export const selectUserHasChosenProject = (state: RootState): boolean =>
state.project.hasSelectedProject;