Fixed state modal

This commit is contained in:
MaxOvs19
2023-05-03 16:47:20 +03:00
parent f1a27627d8
commit 553ac3e75d
5 changed files with 516 additions and 450 deletions

View File

@ -1,16 +1,15 @@
import { createAsyncThunk, createSlice } from "@reduxjs/toolkit";
import {apiRequest} from "../api/request";
import { apiRequest } from "../api/request";
const initialState = {
projects: [],
projectBoard: {},
toggleTab: 1
toggleTab: 1,
modalType: "",
};
export const setProjectBoardFetch = createAsyncThunk(
'userInfo',
(id) =>
apiRequest(`/project/get-project?project_id=${id}&expand=columns`)
export const setProjectBoardFetch = createAsyncThunk("userInfo", (id) =>
apiRequest(`/project/get-project?project_id=${id}&expand=columns`)
);
export const projectsTrackerSlice = createSlice({
@ -18,47 +17,61 @@ export const projectsTrackerSlice = createSlice({
initialState,
reducers: {
setAllProjects: (state, action) => {
state.projects = action.payload
state.projects = action.payload;
},
setProject: (state, action) => {
state.projects.push(action.payload);
},
setToggleTab: (state, action) => {
state.toggleTab = action.payload
state.toggleTab = action.payload;
},
deleteProject: (state, action) => {
state.projects = state.projects.filter((project) => project.id !== action.payload.id)
state.projects = state.projects.filter(
(project) => project.id !== action.payload.id
);
},
moveProjectTask: (state, action) => {
state.projectBoard.columns.forEach((column, index) => {
if (column.id === action.payload.columnId) {
column.tasks.push(action.payload.startWrapperIndex.task)
column.tasks.push(action.payload.startWrapperIndex.task);
apiRequest(`/task/update-task`, {
method: 'PUT',
method: "PUT",
data: {
task_id: action.payload.startWrapperIndex.task.id,
column_id: column.id
}
}).then((res) => {
})
column_id: column.id,
},
}).then((res) => {});
}
if (column.id === action.payload.startWrapperIndex.index) {
state.projectBoard.columns[index].tasks = column.tasks.filter((task)=> task.id !== action.payload.startWrapperIndex.task.id);
state.projectBoard.columns[index].tasks = column.tasks.filter(
(task) => task.id !== action.payload.startWrapperIndex.task.id
);
}
})
}
});
},
modalToggle: (state, action) => {
state.modalType = action.payload;
},
},
extraReducers: {
[setProjectBoardFetch.fulfilled]: (state, action) => {
state.projectBoard = action.payload
}
}
state.projectBoard = action.payload;
},
},
});
export const { setProject, deleteProject, setAllProjects, moveProjectTask, setToggleTab } = projectsTrackerSlice.actions;
export const {
setProject,
deleteProject,
setAllProjects,
moveProjectTask,
setToggleTab,
modalToggle,
} = projectsTrackerSlice.actions;
export const getProjects = (state) => state.tracker.projects;
export const getProjectBoard = (state) => state.tracker.projectBoard;
export const getToggleTab = (state) => state.tracker.toggleTab
export const getToggleTab = (state) => state.tracker.toggleTab;
export const getValueModalType = (state) => state.tracker.modalType;
export default projectsTrackerSlice.reducer;