Commit 7ee93529 authored by Ibadullina Inabat's avatar Ibadullina Inabat

Реализовано удаление участника проекта

parent 4c9591fc
import { Box, Button, Grid, Modal } from "@mui/material"; import { Box, Button, Grid, Modal } from "@mui/material";
import { useState } from "react"; import { useState } from "react";
import { useSelector, useDispatch } from "react-redux"; import { useSelector, useDispatch } from "react-redux";
import FormElement from "../UI/Form/FormElement/FormElement";
import { Typography } from "@mui/material"; import { Typography } from "@mui/material";
import TextField from '@mui/material/TextField'; import TextField from '@mui/material/TextField';
import Stack from '@mui/material/Stack';
import Autocomplete from '@mui/material/Autocomplete'; import Autocomplete from '@mui/material/Autocomplete';
import { useParams } from "react-router-dom"; import { useParams } from "react-router-dom";
import PersonAddIcon from '@mui/icons-material/PersonAdd'; import PersonAddIcon from '@mui/icons-material/PersonAdd';
import { fetchUsers } from "../../store/actions/usersActions";
import { useEffect } from "react"; import { useEffect } from "react";
import { fetchProject } from "../../store/actions/projectsActions"; import { fetchProject } from "../../store/actions/projectsActions";
...@@ -34,16 +31,15 @@ const MemberForm = ({ onSubmit, members }) => { ...@@ -34,16 +31,15 @@ const MemberForm = ({ onSubmit, members }) => {
const handleOpen = () => setOpen(true); const handleOpen = () => setOpen(true);
const handleClose = () => setOpen(false); const handleClose = () => setOpen(false);
const [state, setState] = useState({ const [state, setState] = useState({
// displayName: "",
roleProject: "", roleProject: "",
user: "", user: "",
projectId: "" projectId: ""
}); });
const submitFormHandler = (e) => { const submitFormHandler = (e) => {
e.preventDefault(); e.preventDefault();
let members = {roleProject: state.roleProject, projectId: params.id, userId: state.user.id} let members = { roleProject: state.roleProject, projectId: params.id, userId: state.user.id }
console.log(members); console.log(members);
onSubmit(members); onSubmit(members);
setOpen(false); setOpen(false);
...@@ -52,20 +48,11 @@ const MemberForm = ({ onSubmit, members }) => { ...@@ -52,20 +48,11 @@ const MemberForm = ({ onSubmit, members }) => {
useEffect(() => { useEffect(() => {
dispatch(fetchProject(params.id)) dispatch(fetchProject(params.id))
}, []); }, [params]);
// console.log(user)
// const onChange = (e) => {
// const value = e.target.value;
// const name = e.target.name;
// const newState= { ...state, [name]: value };
// console.log("newState " + newState)
// console.log("e.target " + e.target)
// console.log("e " + e)
// setState(newState);
// };
const memberChangeHandler = (e, value) => { const memberChangeHandler = (e, value) => {
setState(() => { return { ...state, user: value, projectId: params.id} }); setState(() => { return { ...state, user: value, projectId: params.id } });
console.log("memberChangeHandler" + value) console.log("memberChangeHandler" + value)
} }
const roleChangeHandler = (e, value) => { const roleChangeHandler = (e, value) => {
...@@ -74,18 +61,18 @@ const MemberForm = ({ onSubmit, members }) => { ...@@ -74,18 +61,18 @@ const MemberForm = ({ onSubmit, members }) => {
} }
return ( return (
<div > <div >
<PersonAddIcon onClick={handleOpen} style={{marginLeft: "30px", marginTop: "-3px", cursor: 'pointer'}} >Добавить участника</PersonAddIcon> <PersonAddIcon onClick={handleOpen} style={{ marginLeft: "30px", marginTop: "-3px", cursor: 'pointer' }} >Добавить участника</PersonAddIcon>
<Modal <Modal
open={open} open={open}
onClose={handleClose} onClose={handleClose}
aria-labelledby="modal-modal-title" aria-labelledby="modal-modal-title"
aria-describedby="modal-modal-description" aria-describedby="modal-modal-description"
> >
<Box sx={style}> <Box sx={style}>
<form onSubmit={submitFormHandler}> <form onSubmit={submitFormHandler}>
<Grid container direction="column" spacing={2}> <Grid container direction="column" spacing={2}>
<Typography variant="h5" style={{margin: "5px", textAlign: "center"}} >Новый участник</Typography> <Typography variant="h5" style={{ margin: "5px", textAlign: "center" }} >Новый участник</Typography>
<Autocomplete <Autocomplete
id="free-solo-demo" id="free-solo-demo"
freeSolo freeSolo
...@@ -95,7 +82,7 @@ const MemberForm = ({ onSubmit, members }) => { ...@@ -95,7 +82,7 @@ const MemberForm = ({ onSubmit, members }) => {
name={"userId"} name={"userId"}
value={state.user} value={state.user}
renderInput={(params) => <TextField renderInput={(params) => <TextField
style={{margin: "5px"}} style={{ margin: "5px" }}
label={"Участник"} label={"Участник"}
state={state} state={state}
{...params} />} {...params} />}
...@@ -107,7 +94,7 @@ const MemberForm = ({ onSubmit, members }) => { ...@@ -107,7 +94,7 @@ const MemberForm = ({ onSubmit, members }) => {
value={state.roleProject} value={state.roleProject}
onChange={roleChangeHandler} onChange={roleChangeHandler}
renderInput={(params) => <TextField renderInput={(params) => <TextField
style={{margin: "5px"}} style={{ margin: "5px" }}
name={"roleProject"} name={"roleProject"}
label={"Роль в проекте"} label={"Роль в проекте"}
state={state} state={state}
...@@ -118,7 +105,6 @@ const MemberForm = ({ onSubmit, members }) => { ...@@ -118,7 +105,6 @@ const MemberForm = ({ onSubmit, members }) => {
type="submit" type="submit"
color="primary" color="primary"
variant="contained" variant="contained"
> >
Create Create
</Button> </Button>
......
...@@ -12,7 +12,7 @@ const ProjectMembersList = ({members, roleProjectOfAuthor}) => { ...@@ -12,7 +12,7 @@ const ProjectMembersList = ({members, roleProjectOfAuthor}) => {
id={member.id} id={member.id}
key={member.id} key={member.id}
roleProjectOfAuthor={roleProjectOfAuthor} roleProjectOfAuthor={roleProjectOfAuthor}
userId={member.user.id} userId={member?.user?.id}
/> />
})} })}
</Grid> </Grid>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment