renaming app directory
This commit is contained in:
92
app/src/components/projects/reducer.ts
Normal file
92
app/src/components/projects/reducer.ts
Normal file
@@ -0,0 +1,92 @@
|
||||
import { FormMode } from '../../enums/formMode';
|
||||
import { ProjectsState } from './ProjectsState.interface'
|
||||
import { Project } from './Project.interface';
|
||||
|
||||
type Action =
|
||||
| {
|
||||
type: 'SET_DELETE';
|
||||
payload: {
|
||||
isConfirmationDialogOpen: boolean;
|
||||
selectedProjectId: string | undefined;
|
||||
};
|
||||
}
|
||||
| { type: 'SET_PROJECTS'; payload: Project[] }
|
||||
| { type: 'SET_ERROR'; payload: string | undefined }
|
||||
| { type: 'SET_FORM_MODE'; payload: FormMode }
|
||||
| { type: 'SET_IS_CONFIRMATION_DIALOG_LOADING'; payload: boolean }
|
||||
| { type: 'SET_IS_LOADING'; payload: boolean }
|
||||
| {
|
||||
type: 'SET_OPEN_CLOSE_PROJECT_FORM';
|
||||
payload: {
|
||||
formMode: FormMode;
|
||||
selectedProjectId: string | undefined;
|
||||
isFormOpen: boolean;
|
||||
};
|
||||
};
|
||||
|
||||
export const initialState: ProjectsState = {
|
||||
projects: [],
|
||||
error: undefined,
|
||||
formMode: FormMode.CANCEL,
|
||||
isConfirmDialogLoading: false,
|
||||
isConfirmDialogOpen: false,
|
||||
isFormOpen: false,
|
||||
isLoading: false,
|
||||
selectedProjectId: undefined
|
||||
};
|
||||
|
||||
export const reducer = (
|
||||
state: ProjectsState,
|
||||
action: Action
|
||||
): ProjectsState => {
|
||||
switch (action.type) {
|
||||
case 'SET_DELETE': {
|
||||
return {
|
||||
...state,
|
||||
isConfirmDialogOpen: action.payload.isConfirmationDialogOpen,
|
||||
selectedProjectId: action.payload.selectedProjectId
|
||||
};
|
||||
}
|
||||
case 'SET_PROJECTS': {
|
||||
return {
|
||||
...state,
|
||||
projects: action.payload
|
||||
};
|
||||
}
|
||||
case 'SET_ERROR': {
|
||||
return {
|
||||
...state,
|
||||
error: action.payload
|
||||
};
|
||||
}
|
||||
case 'SET_FORM_MODE': {
|
||||
return {
|
||||
...state,
|
||||
formMode: action.payload
|
||||
};
|
||||
}
|
||||
case 'SET_IS_CONFIRMATION_DIALOG_LOADING': {
|
||||
return {
|
||||
...state,
|
||||
isConfirmDialogLoading: action.payload
|
||||
};
|
||||
}
|
||||
case 'SET_IS_LOADING': {
|
||||
return {
|
||||
...state,
|
||||
isLoading: action.payload
|
||||
};
|
||||
}
|
||||
case 'SET_OPEN_CLOSE_PROJECT_FORM': {
|
||||
return {
|
||||
...state,
|
||||
formMode: action.payload.formMode,
|
||||
isFormOpen: action.payload.isFormOpen,
|
||||
selectedProjectId: action.payload.selectedProjectId
|
||||
};
|
||||
}
|
||||
default: {
|
||||
return state;
|
||||
}
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user