Skip to content

Commit 4a0ad0c

Browse files
debug share_size_with_common_de
1 parent 1f15d7e commit 4a0ad0c

File tree

11 files changed

+171
-93
lines changed

11 files changed

+171
-93
lines changed

client/src/components/form_parts/CadastralNumber.tsx

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,10 @@ useEffect(()=> {
5454
min: {
5555
value: 10,
5656
message: "Некорректное значение первого поля"
57+
},
58+
minLength: {
59+
value: 2,
60+
message: 'Некорректное значение первого поля'
5761
}
5862
})}
5963
/>
@@ -70,6 +74,10 @@ useEffect(()=> {
7074
min: {
7175
value: 10,
7276
message: "Некорректное значение второго поля"
77+
},
78+
minLength: {
79+
value: 2,
80+
message: 'Некорректное значение второго поля'
7381
}
7482
})}
7583
/>
@@ -86,6 +94,10 @@ useEffect(()=> {
8694
min: {
8795
value: 0,
8896
message: "Некорректное значение третьего поля"
97+
},
98+
minLength: {
99+
value: 7,
100+
message: 'Некорректное значение третьего поля'
89101
}
90102
})}
91103
/>
Lines changed: 80 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -1,84 +1,99 @@
11
import { FC } from 'react';
22
import { useFormContext } from 'react-hook-form';
33

4+
import { useSelector } from 'react-redux';
5+
import { RootState } from '@slices-my/store';
6+
47
import { Share } from '@types-my/Form.type';
58

69
interface Props {
7-
fraction: 'в доле' | 'га'
10+
fraction: 'в доле' | 'га';
811
}
912

10-
const FunctionalComponent:FC<Props> = ({ fraction }) => {
11-
const { register, formState: { errors }, watch } = useFormContext<Share>();
12-
return (
13-
<div id='share'>
14-
<div className="line">
15-
<label>Размер доли в праве</label>
16-
<input
17-
className='share_size'
18-
placeholder={fraction === 'в доле' ? '144' : '10'}
19-
type="number"
20-
{...register('share_size_ch', {
21-
required: "Это поле обязательное",
22-
min: {
23-
value: 0,
24-
message: "Слишком малое значение"
25-
}
26-
})}
27-
/>
28-
{ fraction === "в доле" &&
29-
<>
30-
13+
const ShareSize: FC<Props> = ({ fraction }) => {
14+
const {
15+
register,
16+
formState: { errors },
17+
} = useFormContext<Share>();
18+
19+
// Получаем объект general_info из Redux.
20+
const general_info = useSelector((state: RootState) => state.general_info.general_info);
3121

22+
// Вычисляем значение прямо в рендере.
23+
const isShareSize = general_info?.isShareWithCommon === true;
24+
25+
return (
26+
<div id="share">
27+
<div className="line">
28+
<label>Размер доли в праве</label>
29+
<input
30+
className="share_size"
31+
placeholder={fraction === 'в доле' ? '144' : '10'}
32+
type="number"
33+
{...register('share_size_ch', {
34+
required: 'Это поле обязательное',
35+
min: {
36+
value: 0,
37+
message: 'Слишком малое значение',
38+
},
39+
})}
40+
/>
41+
{fraction === 'в доле' && (
42+
<>
3243
<span>/</span>
3344
<input
34-
type="number"
35-
className='share_size'
36-
placeholder='256'
37-
{...register('share_size_z', {
38-
required: "Это поле обязательное",
45+
type="number"
46+
className="share_size"
47+
placeholder="256"
48+
{...register('share_size_z', {
49+
required: 'Это поле обязательное',
3950
min: {
40-
value: 1,
41-
message: "Слишком малый знаменатель"
42-
}
43-
})}
51+
value: 1,
52+
message: 'Слишком малый знаменатель',
53+
},
54+
})}
4455
/>
45-
</>
46-
}
47-
<label>Размер доли с общим знаменателеи</label>
56+
</>
57+
)}
58+
{general_info.isShareWithCommon == 'true' && (
59+
<>
60+
<label>Размер доли с общим знаменателем</label>
4861
<input
49-
className='share_size'
50-
type="text"
51-
placeholder='1'
52-
{...register('share_size_with_common_ch', {
53-
required: "Это поле обязательное",
62+
className="share_size"
63+
type="text"
64+
placeholder="1"
65+
{...register('share_size_with_common_ch', {
66+
required: 'Это поле обязательное',
5467
min: {
55-
value: 1,
56-
message: "Слишком малый числитель"
57-
}
58-
})}
59-
/>
60-
<span>/</span>
68+
value: 1,
69+
message: 'Слишком малый числитель',
70+
},
71+
})}
72+
/>
73+
<span>/</span>
6174
<input
62-
className='share_size'
63-
type="text"
64-
placeholder='2'
65-
{...register('share_size_with_common_z', {
66-
required: "Это поле обязательное",
75+
className="share_size"
76+
type="text"
77+
placeholder="2"
78+
{...register('share_size_with_common_z', {
79+
required: 'Это поле обязательное',
6780
min: {
68-
value: 1,
69-
message: "Слишком малый знаменатель"
70-
}
71-
})}
72-
/>
73-
</div>
74-
<div className="validate_errors">
75-
<p className="validate_error">{errors.share_size_ch && errors.share_size_ch.message}</p>
76-
<p className="validate_error">{errors.share_size_z && errors.share_size_z.message}</p>
77-
<p className="validate_error">{errors.share_size_with_common_ch && errors.share_size_with_common_ch.message}</p>
78-
<p className="validate_error">{errors.share_size_with_common_z && errors.share_size_with_common_z.message}</p>
79-
</div>
81+
value: 1,
82+
message: 'Слишком малый знаменатель',
83+
},
84+
})}
85+
/>
86+
</>
87+
)}
88+
</div>
89+
<div className="validate_errors">
90+
<p className="validate_error">{errors.share_size_ch && errors.share_size_ch.message}</p>
91+
<p className="validate_error">{errors.share_size_z && errors.share_size_z.message}</p>
92+
<p className="validate_error">{errors.share_size_with_common_ch && errors.share_size_with_common_ch.message}</p>
93+
<p className="validate_error">{errors.share_size_with_common_z && errors.share_size_with_common_z.message}</p>
94+
</div>
8095
</div>
81-
)
82-
}
96+
);
97+
};
8398

84-
export default FunctionalComponent;
99+
export default ShareSize;
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
import { isShareWithCommonPartType } from '@types-my/Form.type';
2+
import { FC, useState, useEffect } from 'react';
3+
import { useFormContext } from 'react-hook-form';
4+
5+
6+
const IsShareWithCommon:FC = () => {
7+
const { register, formState: { errors }, watch } = useFormContext<isShareWithCommonPartType>();
8+
9+
10+
11+
return (
12+
<div className='line'>
13+
<label>Нужна ли доля с общим знаменателем?</label>
14+
<label className='label-fraction'>
15+
<input
16+
17+
type="radio"
18+
value="true"
19+
{...register('isShareWithCommon')}
20+
/>
21+
да
22+
</label>
23+
24+
<label className='label-fraction'>
25+
<input
26+
type="radio"
27+
value="false"
28+
{...register('isShareWithCommon')}
29+
/>
30+
нет
31+
</label>
32+
</div>
33+
)
34+
}
35+
36+
export default IsShareWithCommon

client/src/pages/Main.page.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ const MainPage:FC = () => {
1313
return (
1414
<>
1515
<main>
16-
<h1>Конструктор бюллетеней</h1>
16+
<h1 id='main_h'>Конструктор бюллетеней</h1>
1717
<BlockComponent width='1500px'>
1818
Конструктор бюллетеней - ваш верный помощник в создании бюллетеней для голосования на общих собраниях. <br />
1919
P.S. Ни в коем случае не пользуйтесь им, если Вы не цените свое время!

client/src/pages/Redactor.page.tsx

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import DateComponent from "@components/form_parts/Date"
1111
import CadastralNumber from '@components/form_parts/CadastralNumber';
1212
import Area from '@components/form_parts/Area';
1313
import Address from '@components/form_parts/Address';
14+
import IsShareWithCommon from '@components/form_parts/isShareWithCommon';
1415
import NumberQuest from '@components/form_parts/NumberQuest';
1516

1617
import { setGeneralInfo } from '@slices-my/general_info.slice';
@@ -21,7 +22,11 @@ const RedactorPage: FC = () => {
2122
const dispatch = useAppDispatch();
2223
const navigation = useNavigate();
2324

24-
const methods = useForm<GeneralInfo>({ mode: 'onBlur' });
25+
const ls = localStorage.getItem('isShareWithCommon') || 'false'
26+
27+
const methods = useForm<GeneralInfo>({ mode: 'onBlur', defaultValues: {
28+
isShareWithCommon: ls
29+
} });
2530
const { handleSubmit, reset, formState: {isValid}, watch } = methods;
2631

2732
const save = (data: GeneralInfo) => {
@@ -33,7 +38,8 @@ const RedactorPage: FC = () => {
3338
localStorage.setItem('c_3', String(data.cadastral_number_3))
3439
localStorage.setItem('c_y', String(data.cadastral_number_y))
3540
localStorage.setItem('area', String(data.area))
36-
localStorage.setItem('address', String(data.address))
41+
localStorage.setItem('address', String(data.address));
42+
localStorage.setItem('isShareWithCommon', String(data.isShareWithCommon))
3743
localStorage.setItem('number_quest', String(data.number_questions))
3844
}
3945

@@ -50,17 +56,21 @@ const RedactorPage: FC = () => {
5056

5157
save(data)
5258

59+
console.log(data.isShareWithCommon)
60+
5361
const date_izn: string = `${data.day} ${data.mouth} ${data.year} года`
5462
const cadastral_number_izn: string = `${data.cadastral_number_1}:${data.cadastral_number_2}:${data.cadastral_number_3}:${data.cadastral_number_y}`
5563
const area_izn: string = `${data.area} кв. м`
56-
const n_q_izn: number | '____' = data.number_questions
64+
const n_q_izn: number | '____' = data.number_questions;
65+
const is_share_size_with_common_izn: boolean | string = data.isShareWithCommon
5766

5867
const generalInfo: GeneralInfoToServer = {
5968
date: date_izn,
6069
cadastral_number: cadastral_number_izn,
6170
area: area_izn,
6271
address: data.address,
63-
number_questions: n_q_izn
72+
number_questions: n_q_izn,
73+
isShareWithCommon: is_share_size_with_common_izn
6474
}
6575
console.log(generalInfo)
6676
dispatch(setGeneralInfo(generalInfo))
@@ -79,6 +89,7 @@ const RedactorPage: FC = () => {
7989
localStorage.removeItem('c_y');
8090
localStorage.removeItem('area');
8191
localStorage.removeItem('address');
92+
localStorage.removeItem('isShareWithCommon')
8293
localStorage.removeItem('number_quest');
8394
}
8495

@@ -92,6 +103,7 @@ const RedactorPage: FC = () => {
92103
<CadastralNumber />
93104
<Area />
94105
<Address />
106+
<IsShareWithCommon />
95107
<NumberQuest />
96108
<div className="line">
97109
<button onClick={ResetValues} disabled={isFormEmpty} >Сбросить все поля</button>

client/src/pages/Result.page.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ const ResultPage: FC = () => {
2626

2727
for (let i = 0; i < various_info.length; i++) {
2828
const share_size = various_info[i].fraction === 'в доле' ? `${various_info[i].share_size_ch}/${various_info[i].share_size_z}` : `${various_info[i].share_size_ch} га`;
29-
const share_size_with_common_denominator = `${various_info[i].share_size_with_common_ch}/${various_info[i].share_size_with_common_z}`;
29+
const share_size_with_common_denominator = general_info.isShareWithCommon ? `${various_info[i].share_size_with_common_ch}/${various_info[i].share_size_with_common_z}` : '';
3030

3131
const obj = {
3232
name: various_info[i].name,
@@ -136,7 +136,7 @@ const ResultPage: FC = () => {
136136

137137
return (
138138
<>
139-
<h1>Финальный этап</h1>
139+
<h1 style={{marginLeft: "30px"}}>Финальный этап</h1>
140140
<div id="finally">
141141
<div id="info_file">
142142
<img width={48} src={wordImg} alt="Word Document" />
@@ -147,7 +147,7 @@ const ResultPage: FC = () => {
147147
<p className='validate_error'>{mutation.error && mutation.error.message}</p>
148148
</div>
149149

150-
{!mutation.isError && <span>Ваши бюллетени успешно сгенерировались. В случае каких-либо неисправностей прошу Вас написать нам
150+
{!mutation.isError && <span style={{marginLeft: '0px', textAlign: 'center'}}>Ваши бюллетени успешно сгенерировались. В случае каких-либо неисправностей прошу Вас написать нам
151151
сюда: <code>ivan.minevskiy@yandex.ru</code> .
152152
</span>}
153153
<div className='center'><Link onClick={handleBack} to={Links.MAIN_PAGE}>Вернуться назад</Link></div>

client/src/pages/Various.page.tsx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,12 +52,11 @@ const Various_page: FC = () => {
5252
}, [])
5353

5454
useEffect(() => {
55-
// Проверяем, все ли формы валидны, когда меняется isValid
5655
if (isValid.length > 0) {
5756
const allFormsValid = isValid.every(item => item === true);
5857
setIsValidForms(allFormsValid);
5958
} else {
60-
setIsValidForms(false); // Если isValid пуст, считаем, что формы не валидны
59+
setIsValidForms(false);
6160
}
6261
}, [isValid]);
6362

0 commit comments

Comments
 (0)