tracker-connect

This commit is contained in:
2023-04-28 14:56:59 +03:00
parent 2ecc569710
commit eeca39671a
6 changed files with 179 additions and 127 deletions

View File

@ -1,34 +1,49 @@
import { createSlice } from "@reduxjs/toolkit";
import { createAsyncThunk, createSlice } from "@reduxjs/toolkit";
import {apiRequest} from "../api/request";
import {act} from "@testing-library/react";
const initialState = {
project: [
{
name: "Разработка трекера",
count: 4,
},
{
name: "Кинотеатр",
count: 4,
},
{
name: "Проект страхование",
count: 4,
},
],
projects: [],
projectBoard: {}
};
export const setProjectBoardFetch = createAsyncThunk(
'userInfo',
(id) =>
apiRequest(`/project/get-project?project_id=${id}&expand=columns`)
);
export const projectsTrackerSlice = createSlice({
name: "projectsTracker",
initialState,
reducers: {
setProject: (state, action) => {
state.project.push(action.payload);
setAllProjects: (state, action) => {
state.projects = action.payload
},
setProject: (state, action) => {
state.projects.push(action.payload);
},
moveProjectTask: (state, action) => {
state.projectBoard.columns.forEach((column) => {
if (column.id === action.payload.columnId) {
column.tasks.push(action.payload.startWrapperIndex.task)
}
if (column.id === action.payload.startWrapperIndex.index) {
column.tasks.splice(column.tasks.indexOf(action.payload.startWrapperIndex.task), 1)
}
})
}
},
extraReducers: {
[setProjectBoardFetch.fulfilled]: (state, action) => {
state.projectBoard = action.payload
}
}
});
export const { setProject } = projectsTrackerSlice.actions;
export const { setProject, setAllProjects, moveProjectTask } = projectsTrackerSlice.actions;
export const getProjects = (state) => state.tracker.project;
export const getProjects = (state) => state.tracker.projects;
export const getProjectBoard = (state) => state.tracker.projectBoard;
export default projectsTrackerSlice.reducer;