@@ -2,42 +2,66 @@ import { FC, useEffect, useCallback } from 'react';
22import "../sass/various_page.scss"
33
44import { useAppDispatch } from '@slices-my/store' ;
5- import { addVariousInfo } from '@slices-my/various_info.slice' ;
5+ import { addVariousInfo , addIsValid } from '@slices-my/various_info.slice' ;
66
77import { useSelector } from 'react-redux' ;
88import { RootState } from '@slices-my/store' ;
99
10+ import { useNavigate } from 'react-router-dom' ;
11+
1012import { useForm , FormProvider } from 'react-hook-form' ;
1113import { VariousInfo } from '@types-my/Form.type' ;
14+ import { Links } from '@enums/Links.enum' ;
1215
1316import FIO from '@components/form_parts/FIO' ;
14- import Fraction from '@components/form_parts/Fraction' ;
17+ import deleteIcon from '/img/delete.png'
18+
19+
20+ interface Props {
21+ id : number ,
22+ onDelete : ( id : number ) => void ,
23+ num : number
24+ }
25+
26+ const Form : FC < Props > = ( { id, onDelete, num } ) => {
1527
16- const Form : FC = ( ) => {
28+ const navigate = useNavigate ( )
29+
30+ const general_info = useSelector ( ( state : RootState ) => state . general_info . general_info )
1731 const dispatch = useAppDispatch ( ) ;
1832 const isClick = useSelector ( ( state : RootState ) => state . various_info . isClick ) ;
1933
2034 const methods = useForm < VariousInfo > ( { mode : 'onBlur' } ) ;
2135 const { handleSubmit, formState : { isValid } } = methods ;
2236
2337 const onSubmit = useCallback ( ( data : VariousInfo ) => {
24- console . log ( data ) ;
2538 dispatch ( addVariousInfo ( Array ( data ) ) ) ;
26- } , [ dispatch ] ) ;
39+ navigate ( Links . RESULT )
40+ } , [ dispatch ] ) ;
41+
42+
2743
2844 useEffect ( ( ) => {
2945 if ( isClick > 0 ) {
30- alert ( 1 )
31- handleSubmit ( ( data : VariousInfo ) => onSubmit ( data ) ) ( ) ;
46+ dispatch ( addIsValid ( isValid ) )
47+ handleSubmit ( ( data : VariousInfo ) => onSubmit ( data ) ) ( ) ;
3248 }
33- } , [ isClick , handleSubmit , onSubmit ] ) ;
49+ } , [ isClick , handleSubmit , onSubmit ] ) ;
50+
51+
52+
53+
54+
55+
3456 return (
3557 < >
58+ < span className = 'number_form' >
59+ #{ num }
60+ < img onClick = { ( ) => onDelete ( id ) } id = 'delete_icon' width = { 36 } src = { deleteIcon } alt = "Удалить участника" />
61+ </ span >
3662 < FormProvider { ...methods } >
37- < form >
38- < h2 > Информация о каждом участнике</ h2 >
63+ < form className = 'various' >
3964 < FIO />
40- < Fraction />
4165 </ form >
4266 </ FormProvider >
4367 </ >
0 commit comments