@@ -2,30 +2,76 @@ import React, { useState } from 'react';
22import  PropTypes  from  'prop-types' ; 
33import  {  prepareProps  }  from  '@data-driven-forms/carbon-component-mapper' ; 
44import  {  Button ,  Select  }  from  'carbon-components-react' ; 
5- import  {  componentTypes ,  FormSpy  }  from  '@data-driven-forms/react-form-renderer' ; 
6- import  MiqFormRenderer ,  {  useFormApi  }  from  '@@ddf' ; 
5+ import  { 
6+   componentTypes ,  FormSpy ,  useFieldApi ,  useFormApi , 
7+ }  from  '@data-driven-forms/react-form-renderer' ; 
8+ import  MiqFormRenderer  from  '@@ddf' ; 
9+ import  {  Renew32  }  from  '@carbon/icons-react' ; 
710
811const  DynamicSelect  =  ( props )  =>  { 
912  // const { 
1013  //   initialValues, options, id, titleText, label, placeholder, 
1114  //   ...rest 
1215  // } = useFieldApi(prepareProps(props)); 
13- 
16+   const  { 
17+     customProp, 
18+     label, 
19+     input, 
20+     isRequired, 
21+     meta : {  error,  touched } , 
22+     FieldArrayProvider, 
23+     dataType, 
24+     ...rest 
25+   }  =  useFieldApi ( props ) ; 
26+   console . log ( input ) ; 
1427  console . log ( props ) ; 
1528  // const [defaultValues, setDefaultValues] = useState(initialValues || []); 
29+ 
30+   console . log ( props . initialValue ) ; 
31+ 
1632  const  fields  =  { 
1733    fields : [ 
1834      { 
1935        component : componentTypes . SELECT , 
2036        id : props . id , 
2137        name : props . name , 
2238        label : props . label , 
23-         options : props . options , 
39+         // options: props.options, 
40+         options : [ {  value : '0' ,  label : 'test'  } ,  {  value : '1' ,  label : '1'  } ] , 
41+         onChange : ( val )  =>  { 
42+           input . value  =  val ; 
43+           props . setDynamicFieldValues ( {  ...props . dynamicFieldValues ,  [ props . name ] : input . value  } ) ; 
44+           // props.setDynamicFieldValues({ [props.name]: input.value }); 
45+           console . log ( input . value ) ; 
46+         } , 
47+         resolveProps : ( fieldProps ,  {  meta,  input } ,  formOptions )  =>  { 
48+           // console.log(fieldProps); 
49+           // console.log(meta); 
50+           // console.log(input); 
51+           // console.log(formOptions); 
52+           // props.setDynamicFieldValues({ ...props.dynamicFieldValues, [props.name]: input.value }); 
53+           // props.setDynamicFieldValues({ [props.name]: input.value }); 
54+         } , 
2455      } , 
2556    ] , 
2657  } ; 
2758
2859  return  ( 
60+     // <div> 
61+     //   <label style={{ color: 'initial' }} htmlFor={input.name}> 
62+     //     {isRequired && <span>* </span>} 
63+     //     {label} 
64+     //   </label> 
65+     //   <input id={input.name} {...input} {...rest} /> 
66+     //   {touched && error && <p>{error}</p> } 
67+     //   {customProp && <p style={{ color: 'initial' }}>This is a custom prop and has nothing to do with form schema</p> } 
68+     //   <select name="cars" id="cars"> 
69+     //     <option value="volvo">Volvo</option> 
70+     //     <option value="saab">Saab</option> 
71+     //     <option value="mercedes">Mercedes</option> 
72+     //     <option value="audi">Audi</option> 
73+     //   </select> 
74+     // </div> 
2975    < MiqFormRenderer 
3076      // initialValues={initialValues} 
3177      FormTemplate = { ( props )  =>  < FormTemplate  { ...props }  fields = { fields }  /> } 
@@ -47,25 +93,21 @@ const FormTemplate = ({ formFields }) => {
4793  }  =  useFormApi ( ) ; 
4894  const  {  valid }  =  getState ( ) ; 
4995  return  ( 
50-     < form  id = "order-service-form"    onSubmit = { handleSubmit } > 
96+     < div  id = "dynamic-field"  > 
5197      { formFields } 
5298      < FormSpy > 
5399        { ( )  =>  ( 
54100          < div  className = "custom-button-wrapper" > 
55-             { /* <Button 
56-               disabled={verifyIsDisabled(valid)} 
57-               kind="primary" 
58-               className="btnRight" 
59-               type="submit" 
60-               id="submit" 
61-               variant="contained" 
62-             > 
63-               {__('Submit')} 
64-             </Button> */ } 
101+             < Button 
102+               onClick = { ( )  =>  console . log ( 'Clicked' ) } 
103+               renderIcon = { Renew32 } 
104+               hasIconOnly 
105+               iconDescription = { __ ( 'Refresh field' ) } 
106+             /> 
65107          </ div > 
66108        ) } 
67109      </ FormSpy > 
68-     </ form > 
110+     </ div > 
69111  ) ; 
70112} ; 
71113
0 commit comments