Skip to content

Commit

Permalink
feat: update formitem props (#614)
Browse files Browse the repository at this point in the history
  • Loading branch information
JohnIsOnTheRoad authored and janryWang committed Jan 16, 2020
1 parent 88ce573 commit 1ff5f8b
Show file tree
Hide file tree
Showing 4 changed files with 57 additions and 19 deletions.
26 changes: 19 additions & 7 deletions packages/antd/src/compat/FormItem.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -83,26 +83,38 @@ export const CompatAntdFormItemProps = ({ children, ...props }) => (
)

export const CompatAntdFormItem: React.FC<ICompatItemProps> = props => {
const { prefixCls, labelAlign, labelCol, wrapperCol } = useFormItem()
const {
prefixCls,
labelAlign,
labelCol: contextLabelCol,
wrapperCol: contextWrapperCol
} = useFormItem()
const help = computeHelp(props)
const label = computeLabel(props)
const status = computeStatus(props)
const extra = computeExtra(props)
const itemProps = computeSchemaExtendProps(props)
const outerFormItemProps = useContext(FormItemPropsContext)

const mergedProps = {
...itemProps,
...outerFormItemProps,
}

const { labelCol, wrapperCol } = mergedProps

return (
<Form.Item
prefixCls={prefixCls}
label={label}
labelCol={label ? normalizeCol(labelCol) : undefined}
label={label}
labelAlign={labelAlign}
required={props.required}
wrapperCol={label ? normalizeCol(wrapperCol) : undefined}
required={props.required}
help={help}
validateStatus={status}
extra={extra ? <p>{extra}</p> : undefined}
{...itemProps}
{...outerFormItemProps}
{...mergedProps}
labelCol={label ? normalizeCol(labelCol || contextLabelCol) : undefined}
wrapperCol={label ? normalizeCol(wrapperCol || contextWrapperCol) : undefined}
>
<CompatAntdFormItemProps>{props.children}</CompatAntdFormItemProps>
</Form.Item>
Expand Down
5 changes: 1 addition & 4 deletions packages/core/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -780,10 +780,7 @@ export function createForm<FieldProps, VirtualFieldProps>(
return arr
},
validate(opts?: IFormExtendedValidateFieldOptions) {
return validate(
field.getSourceState(state => state.path),
opts
)
return validate(field.getSourceState(state => state.path), opts)
}
}
}
Expand Down
23 changes: 15 additions & 8 deletions packages/next/src/compat/FormItem.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -86,9 +86,9 @@ export const CompatNextFormItem: React.FC<ICompatItemProps> = props => {
const {
prefix,
labelAlign,
labelCol,
labelTextAlign,
wrapperCol,
labelCol: contextLabelCol,
wrapperCol: contextWrapperCol,
size
} = useFormItem()
const formItemProps = useContext(FormItemPropsContext)
Expand All @@ -97,21 +97,28 @@ export const CompatNextFormItem: React.FC<ICompatItemProps> = props => {
const status = computeStatus(props)
const extra = computeExtra(props)
const itemProps = computeSchemaExtendProps(props)

const mergedProps = {
...itemProps,
...formItemProps,
}

const { labelCol, wrapperCol } = mergedProps

return (
<Form.Item
prefix={prefix}
label={label}
labelTextAlign={labelTextAlign}
labelCol={label ? normalizeCol(labelCol) : undefined}
labelTextAlign={labelTextAlign}
labelAlign={labelAlign || 'left'}
required={props.required}
wrapperCol={label ? normalizeCol(wrapperCol) : undefined}
required={props.required}
size={size}
help={help}
validateState={status}
extra={<p>{extra}</p>}
{...itemProps}
{...formItemProps}
{...mergedProps}
labelCol={label ? normalizeCol(labelCol || contextLabelCol) : undefined}
wrapperCol={label ? normalizeCol(wrapperCol || contextWrapperCol) : undefined}
>
<CompatNextFormItemProps>{props.children}</CompatNextFormItemProps>
</Form.Item>
Expand Down
22 changes: 22 additions & 0 deletions packages/react-schema-renderer/src/__tests__/schema.spec.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,28 @@ describe('major scene', () => {
expect(s5.getExtendsEditable()).toEqual(true)
})

test('labelCol and wrapperCol(without filter)', () => {
const s = new Schema({
"type":"date",
"title":"test header",
"x-props": { "labelCol": 2, "wrapperCol": 22 },
"x-component-props": { "labelCol": 6, "wrapperCol": 18 },
}, undefined, 'test')

expect(s.getExtendsComponentProps()).toEqual({})
})

test('labelCol and wrapperCol(with filter)', () => {
const s = new Schema({
"type":"date",
"title":"test header",
"x-props": { "labelCol": 2, "wrapperCol": 22 },
"x-component-props": { "labelCol": 6, "wrapperCol": 18 },
}, undefined, 'test')

expect(s.getExtendsComponentProps(false)).toEqual({ "labelCol": 6, "wrapperCol": 18 })
})

test('deprecate x-item-props', () => {
const s1 = new Schema({
"type":"date",
Expand Down

0 comments on commit 1ff5f8b

Please sign in to comment.