@@ -4,118 +4,121 @@ import { useFormContext } from 'react-hook-form';
44
55import ShareSize from "@components/form_parts/Share_size"
66
7- const FIO :FC = ( ) => {
7+ const FIO : FC = ( ) => {
88 const { register, formState : { errors } , watch } = useFormContext < FractionAndFIO > ( ) ;
99
1010 const isR = watch ( 'isRepresentative' )
1111 const [ isRes , setIsRes ] = useState < boolean > ( false )
1212
1313 const fraction = watch ( 'fraction' )
1414 const [ fractionState , setFractionState ] = useState < 'в доле' | 'га' > ( 'в доле' )
15-
16- useEffect ( ( ) => {
15+
16+ useEffect ( ( ) => {
1717 setIsRes ( ( prev ) => ! prev )
1818 } , [ isR ] )
19- useEffect ( ( ) => {
19+ useEffect ( ( ) => {
2020 setFractionState ( fraction )
2121 } , [ fraction ] )
22- return (
23- < >
24- < div className = 'pole' id = "fio" >
25- < div className = 'part' >
26- < div className = "line" >
27- < label htmlFor = "fio_input" > ФИО участника</ label >
28- < input
29-
30- type = "text"
31- id = "fio_input"
32- placeholder = 'Иванов Иван Иванович'
33- { ...register ( 'name' , {
34- required : "Это поле обязательное" ,
35- maxLength : {
36- value : 60 ,
37- message : "Слишком длинное ФИО"
38- } ,
39- minLength : {
40- value : 2 ,
41- message : "Слишком короткое ФИО"
42- }
43- } ) }
44- />
45-
46- { isRes && < label htmlFor = "name_res" > ФИО Представителя</ label > }
47- { isRes && < input
48- type = "text"
49- id = "name_res"
50- placeholder = 'Иванов Иван Иванович'
51- { ...register ( 'name_representative' , {
52- maxLength : {
53- value : 60 ,
54- message : "Слишком длинное ФИО"
55- } ,
56- minLength : {
57- value : 2 ,
58- message : "Слишком короткое ФИО"
59- }
60- } ) }
61- />
62- }
63- </ div >
64- </ div >
65- {
66- errors . name &&
67- < div className = "validate_errors" >
68- < p className = "validate_error" > { errors . name . message } </ p >
69- </ div >
70- }
71- </ div >
72- < div className = 'pole' id = "fraction" >
73- < div className = 'part' >
74- < label > Доля в праве:</ label >
75- < label className = 'label-fraction' >
76- < input
77- type = "radio"
78- value = "в доле"
79- { ...register ( "fraction" ) }
80- defaultChecked
81- />
82- дробь
83- </ label >
84-
85- < label className = 'label-fraction' >
86- < input
87- type = "radio"
88- value = "га"
89- { ...register ( "fraction" ) }
90- />
91- га
92- </ label >
93-
94- < label style = { { marginLeft :"40px" } } > Представитель:</ label >
95- < label className = 'label-fraction' >
96- < input
97- defaultChecked
98- type = "radio"
99- value = "true"
100- { ...register ( 'isRepresentative' ) }
101- />
102- есть
103- </ label >
104-
105- < label className = 'label-fraction' >
106- < input
107- type = "radio"
108- value = "false"
109- { ...register ( 'isRepresentative' ) }
110- />
111- нет
112- </ label >
22+ return (
23+ < >
24+ < div className = 'pole' id = "fio" >
25+ < div className = 'part' >
26+ < div className = "line" >
27+ < div >
28+ < label htmlFor = "fio_input" > ФИО участника</ label >
29+ < input
30+ type = "text"
31+ id = "fio_input"
32+ placeholder = 'Иванов Иван Иванович'
33+ { ...register ( 'name' , {
34+ required : "Это поле обязательное" ,
35+ maxLength : {
36+ value : 60 ,
37+ message : "Слишком длинное ФИО"
38+ } ,
39+ minLength : {
40+ value : 2 ,
41+ message : "Слишком короткое ФИО"
42+ }
43+ } ) }
44+ />
45+ </ div >
46+ < div >
47+ { isRes && < label htmlFor = "name_res" > ФИО Представителя</ label > }
48+ { isRes && < input
49+ type = "text"
50+ id = "name_res"
51+ placeholder = 'Иванов Иван Иванович'
52+ { ...register ( 'name_representative' , {
53+ maxLength : {
54+ value : 60 ,
55+ message : "Слишком длинное ФИО"
56+ } ,
57+ minLength : {
58+ value : 2 ,
59+ message : "Слишком короткое ФИО"
60+ }
61+ } ) }
62+ />
63+ }
64+ </ div >
65+ </ div >
66+ </ div >
67+ {
68+ errors . name &&
69+ < div className = "validate_errors" >
70+ < p className = "validate_error" > { errors . name . message } </ p >
71+ </ div >
72+ }
73+ </ div >
74+ < div className = 'pole' id = "fraction" >
75+ < div className = 'part' >
76+ < div >
77+ < label > Доля в праве:</ label >
78+ < label className = 'label-fraction' >
79+ < input
80+ type = "radio"
81+ value = "в доле"
82+ { ...register ( "fraction" ) }
83+ defaultChecked
84+ />
85+ < span className = "text_radio" > дробь</ span >
86+ </ label >
87+ < label id = 'ga_input' className = 'label-fraction' >
88+ < input
89+ type = "radio"
90+ value = "га"
91+ { ...register ( "fraction" ) }
92+ />
93+ < span className = 'text_radio' > га</ span >
94+ </ label >
95+ </ div >
96+ < div >
97+ < label style = { { marginLeft : "40px" } } > Представитель:</ label >
98+ < label className = 'label-fraction' >
99+ < input
100+ defaultChecked
101+ type = "radio"
102+ value = "true"
103+ { ...register ( 'isRepresentative' ) }
104+ />
105+ < span className = 'text_radio' > есть</ span >
106+ </ label >
107+ < label className = 'label-fraction' >
108+ < input
109+ type = "radio"
110+ value = "false"
111+ { ...register ( 'isRepresentative' ) }
112+ />
113+ < span className = 'text_radio' > нет</ span >
114+ </ label >
115+ </ div >
116+ </ div >
117+ { errors . fraction && < p > { errors . fraction . message } </ p > } { /* Вывод ошибок (если required) */ }
113118 </ div >
114- { errors . fraction && < p > { errors . fraction . message } </ p > } { /* Вывод ошибок (если required) */ }
115- </ div >
116- < ShareSize fraction = { fractionState } />
117- </ >
118- )
119+ < ShareSize fraction = { fractionState } />
120+ </ >
121+ )
119122}
120123
121124export default FIO ;
0 commit comments