51 lines
1.8 KiB
JavaScript
51 lines
1.8 KiB
JavaScript
import { useContext } from 'react';
|
|
import { useNavigate } from 'react-router-dom';
|
|
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
import { useForm } from 'react-hook-form';
|
|
import { AddGroupContext } from '../../providers/AddGroupProvider.jsx';
|
|
import useSubmit from './hooks/AddMemberHook.jsx';
|
|
|
|
const AddMember = () => {
|
|
const { steps } = useContext(AddGroupContext);
|
|
const { onSubmit } = useSubmit();
|
|
const {
|
|
register, reset, handleSubmit, formState: { errors },
|
|
} = useForm();
|
|
console.log(errors);
|
|
const navigate = useNavigate();
|
|
console.log(steps);
|
|
const makeSubmit = async (data) => {
|
|
const res = await onSubmit(data);
|
|
if (res === true) {
|
|
navigate('/addmember');
|
|
} else {
|
|
navigate('/');
|
|
}
|
|
reset();
|
|
};
|
|
return (
|
|
<main>
|
|
<div className="container-fluid">
|
|
<div className="row">
|
|
<div className="add-group">
|
|
<div className="form-group col-7">
|
|
<form className = 'form-horizontal' onSubmit = {handleSubmit(async (data) => {
|
|
await makeSubmit(data);
|
|
})}>
|
|
<label>имя участника </label>
|
|
<input {...register('name', { required: 'Это поле обязательно' })} className="form-control " type="handle" placeholder="имя участника"></input>
|
|
<p>{errors.name?.message}</p>
|
|
<label>хэндл Codeforces</label>
|
|
<input {...register('handle', { required: 'Это поле обязательно' })} className="form-control " type="handle" placeholder="хэндл Codeforces"></input>
|
|
<p>{errors.handle?.message}</p>
|
|
<input type = 'submit'/>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</main>
|
|
);
|
|
};
|
|
export default AddMember;
|