diff --git a/.actrc b/.actrc new file mode 100644 index 0000000..167609a --- /dev/null +++ b/.actrc @@ -0,0 +1,2 @@ +--container-architecture=linux/amd64 +--pull=false \ No newline at end of file diff --git a/packages/examples-antd/src/examples/Basic.tsx b/packages/examples-antd/src/examples/Basic.tsx index 298e186..41bd585 100644 --- a/packages/examples-antd/src/examples/Basic.tsx +++ b/packages/examples-antd/src/examples/Basic.tsx @@ -8,7 +8,7 @@ const Basic = () => { const options = ['Apple', 'Orange', 'Banana']; const meta: AntdNiceFormMeta = { columns: 1, - initialValues: { obj: { input: 12 } }, + initialValues: { obj: { input: 'Nate' } }, layout: 'horizontal', wrapperProps: { labelCol: { @@ -34,7 +34,7 @@ const Basic = () => { key: 'rating', label: 'Rating', widget: Rate, - initialValue: 2, + initialValue: 3, condition: () => { return NiceForm.getFieldValue('checkbox', meta, form); }, @@ -45,12 +45,14 @@ const Basic = () => { label: 'Select', widget: 'select', required: true, + initialValue: 'Apple', options, }, { key: 'checkbox-group', label: 'Checkbox Group', widget: 'checkbox-group', + initialValue: 'Apple', options, }, { @@ -58,11 +60,14 @@ const Basic = () => { label: 'Radio Group', widget: 'radio-group', options, + initialValue: 'Orange', }, { key: 'radio-button-group', label: 'Radio Button Group', widget: 'radio-group', + initialValue: 'Orange', + widgetProps: { optionType: 'button', buttonStyle: 'solid', diff --git a/packages/examples-antd/src/examples/ViewEdit.tsx b/packages/examples-antd/src/examples/ViewEdit.tsx index 1166bd5..f5f553c 100644 --- a/packages/examples-antd/src/examples/ViewEdit.tsx +++ b/packages/examples-antd/src/examples/ViewEdit.tsx @@ -32,9 +32,11 @@ export default () => { const getMeta = () => { const meta: AntdNiceFormMeta = { columns: 2, + viewMode, + initialValues: personalInfo, fields: [ - { key: 'firstName', label: ' Name', required: true }, - { key: 'lastName', label: 'Last Name', required: true }, + { key: 'name.first', label: 'First Name', required: true }, + { key: 'name.last', label: 'Last Name', required: true }, { key: 'gender', label: 'Gender', diff --git a/packages/examples-formik/package.json b/packages/examples-formik/package.json index 08deb79..351d685 100644 --- a/packages/examples-formik/package.json +++ b/packages/examples-formik/package.json @@ -19,7 +19,7 @@ "formik": "^2.4.5", "formik-mui-x-date-pickers": "^0.0.1", "notistack": "^3.0.1", - "prismjs": "1.29.0", + "prismjs": "1.30.0", "react": "^18.2.0", "react-dom": "^18.2.0" }, diff --git a/packages/nice-form-react/package.json b/packages/nice-form-react/package.json index af64c0c..3406560 100644 --- a/packages/nice-form-react/package.json +++ b/packages/nice-form-react/package.json @@ -1,7 +1,7 @@ { "name": "@ebay/nice-form-react", "private": false, - "version": "2.0.1", + "version": "2.0.3", "license": "MIT", "repository": "https://github.com/eBay/nice-form-react", "main": "./lib/cjs/index.js", diff --git a/packages/nice-form-react/src/FormField.tsx b/packages/nice-form-react/src/FormField.tsx index 7fb8555..755bb18 100644 --- a/packages/nice-form-react/src/FormField.tsx +++ b/packages/nice-form-react/src/FormField.tsx @@ -31,7 +31,7 @@ const FormField = ({ const FormWidget = field.widget; const ViewWidget = field.viewWidget; - const widgetProps = { ...field.widgetProps, disabled: field.disabled || meta.disabled }; + const widgetProps = { ...field.widgetProps }; const { renderField, renderFieldWithoutLabel } = config; const content = renderField ? ( diff --git a/packages/nice-form-react/src/NiceForm.tsx b/packages/nice-form-react/src/NiceForm.tsx index debb8d3..1791cc6 100644 --- a/packages/nice-form-react/src/NiceForm.tsx +++ b/packages/nice-form-react/src/NiceForm.tsx @@ -34,7 +34,7 @@ const NiceForm = ({ meta }: { meta: NiceFormMeta }): ReactElement | null => { }); // disabled property are on both widgetProps and field - widgetProps.disabled = meta.disabled || field.disabled; + widgetProps.disabled = typeof field.disabled === 'boolean' ? field.disabled : meta.disabled delete convertedField.disabled; convertedField.widgetProps = widgetProps; diff --git a/packages/nice-form-react/src/adapters/antdAdapter.tsx b/packages/nice-form-react/src/adapters/antdAdapter.tsx index 12ad15c..5a08319 100644 --- a/packages/nice-form-react/src/adapters/antdAdapter.tsx +++ b/packages/nice-form-react/src/adapters/antdAdapter.tsx @@ -249,7 +249,7 @@ const antdAdapter: NiceFormAdapter = { return newMeta; }, - // Todo: why do we need this method? seems can use form.getFieldValue directly? + // This ensures you can always get form value before form is connected/renderred getFieldValue: (fieldName: NamePath, meta: NiceFormMeta, form: FormInstance) => { const isFormConnected = Object.keys(form.getFieldsValue(true)).length > 0; if (isFormConnected) return form.getFieldValue(fieldName); @@ -290,7 +290,6 @@ const antdAdapter: NiceFormAdapter = { const viewMode = meta.viewMode || field.viewMode; const widgetProps: NiceFormWidgetProps = { ...field.widgetProps, - disabled: field.disabled || meta.disabled, }; // Handle full width @@ -325,7 +324,7 @@ const antdAdapter: NiceFormAdapter = { className: field.className || '', style: field.style || ({} as CSSProperties), // NOTE: use valuePropName at view mode so that UI is updated if initialValues changed at view mode. - valuePropName: field.valuePropName || viewMode ? 'initialValue' : 'value', + valuePropName: field.valuePropName || (viewMode ? 'initialValue' : 'value'), }; // These std keys are passed to Form.Item directly