@@ -6,7 +6,7 @@ import './ProjectDetailsForm.scss'
66
77import { FormFieldProps } from '../helpers/types' ;
88
9- import { Form , Collapse , Input , Select , Switch , Tooltip , Checkbox , GetProp , FormInstance } from 'antd' ;
9+ import { Form , Collapse , Input , Select , Switch , Tooltip , Checkbox , FormInstance } from 'antd' ;
1010
1111import { InfoCircleOutlined } from '@ant-design/icons' ;
1212
@@ -15,6 +15,7 @@ import { formFields } from '../helpers/constants';
1515import { AppDispatch , RootState } from '../store/store' ;
1616
1717import { setNewProjectDetails , setProjectDetails } from '../store/slices/project' ;
18+ import { CheckboxChangeEvent } from 'antd/es/checkbox' ;
1819
1920const { TextArea } = Input ;
2021
@@ -29,16 +30,8 @@ const ProjectDetailsForm = (props: { setFormInstances: (formInstances: FormInsta
2930
3031 const [ collapseAll , setCollapseAll ] = useState ( false ) ;
3132
32- function setFieldChangeInStorage ( formField : FormFieldProps , val : any ) {
33- let valueToSet = [ 'switch' ] . includes ( formField . type ) ? val : val . target . value ;
34-
35- if ( formField . type === 'select' ) {
36- const allSelectedItems = Array . from ( val . currentTarget . querySelectorAll ( '.ant-select-selection-item' ) ) . map ( item => item . textContent ) ;
37-
38- valueToSet = formField . tags === true ? allSelectedItems : allSelectedItems [ 0 ]
39- ;
40- }
41-
33+
34+ function setFieldChangeInStorage ( formField : FormFieldProps , valueToSet : string | boolean | string [ ] ) {
4235 const handler = isNewProject ? setNewProjectDetails : setProjectDetails ;
4336
4437 return dispatch ( handler ( {
@@ -50,12 +43,22 @@ const ProjectDetailsForm = (props: { setFormInstances: (formInstances: FormInsta
5043 const renderFormField = ( formField : FormFieldProps ) => {
5144 switch ( formField . type ) {
5245 case 'input' :
53- return < Input onBlur = { ( val ) => setFieldChangeInStorage ( formField , val ) } addonBefore = { formField . addon_before || '' } maxLength = { formField . max_length } placeholder = { formField . placeholder } /> ;
46+ return < Input onBlur = { ( val ) => setFieldChangeInStorage ( formField , val . target . value ) } addonBefore = { formField . addon_before || '' } maxLength = { formField . max_length } placeholder = { formField . placeholder } /> ;
5447 case 'textarea' :
55- return < TextArea onBlur = { ( val ) => setFieldChangeInStorage ( formField , val ) } placeholder = { formField . placeholder } rows = { 4 } /> ;
48+ return < TextArea onBlur = { ( val ) => setFieldChangeInStorage ( formField , val . target . value ) } placeholder = { formField . placeholder } rows = { 4 } /> ;
5649 case 'select' :
5750 return < Select placeholder = { formField . placeholder }
58- onBlur = { ( val ) => setFieldChangeInStorage ( formField , val ) }
51+ onBlur = {
52+ ( val ) => {
53+ const allSelectedItems = Array . from (
54+ val . currentTarget . querySelectorAll ( '.ant-select-selection-item' )
55+ ) . map ( item => item . textContent || '' ) ;
56+
57+ const valueToSet = formField . tags === true ? allSelectedItems : allSelectedItems [ 0 ] ;
58+
59+ setFieldChangeInStorage ( formField , valueToSet )
60+ }
61+ }
5962 mode = { formField . tags ? 'tags' : ( formField . multiple ? 'multiple' : undefined ) }
6063 options = { formField . options }
6164 /> ;
@@ -137,7 +140,7 @@ const ProjectDetailsForm = (props: { setFormInstances: (formInstances: FormInsta
137140 }
138141 ] ;
139142
140- const onCollapseCheckChange : GetProp < typeof Checkbox . Group , 'onChange' > = ( checkedValues ) => {
143+ const onCollapseCheckChange = ( checkedValues : CheckboxChangeEvent ) => {
141144 setCollapseAll ( checkedValues . target . checked ) ;
142145 } ;
143146
0 commit comments