import { css } from '@emotion/css'; import { FormItem as Item } from '@formily/antd'; import { Field } from '@formily/core'; import { ISchema, useField, useFieldSchema } from '@formily/react'; import React from 'react'; import { useTranslation } from 'react-i18next'; import { useCompile, useDesignable } from '../..'; import { useCollection, useCollectionManager } from '../../../collection-manager'; import { GeneralSchemaDesigner, SchemaSettings } from '../../../schema-settings'; import { BlockItem } from '../block-item'; import { HTMLEncode } from '../input/shared'; export const FormItem: any = (props) => { const field = useField(); return ( '), }} /> ) : null } /> ); }; FormItem.Designer = () => { const { getCollectionFields } = useCollectionManager(); const { getField } = useCollection(); const field = useField(); const fieldSchema = useFieldSchema(); const { t } = useTranslation(); const { dn, refresh } = useDesignable(); const compile = useCompile(); const collectionField = getField(fieldSchema['name']); const originalTitle = collectionField?.uiSchema?.title; const targetFields = collectionField?.target ? getCollectionFields(collectionField.target) : []; const initialValue = { title: field.title === originalTitle ? undefined : field.title, }; if (!field.readPretty) { initialValue['required'] = field.required; } const options = targetFields .filter((field) => !field?.target && field.type !== 'boolean') .map((field) => ({ value: field?.name, label: compile(field?.uiSchema?.title) || field?.name, })); return ( {collectionField && ( { if (title) { field.title = title; fieldSchema.title = title; dn.emit('patch', { schema: { 'x-uid': fieldSchema['x-uid'], title: fieldSchema.title, }, }); } dn.refresh(); }} /> )} {!field.readPretty && ( { field.description = description; fieldSchema.description = description; dn.emit('patch', { schema: { 'x-uid': fieldSchema['x-uid'], description: fieldSchema.description, }, }); dn.refresh(); }} /> )} {field.readPretty && ( { field.decoratorProps.tooltip = tooltip; fieldSchema['x-decorator-props'] = fieldSchema['x-decorator-props'] || {}; fieldSchema['x-decorator-props']['tooltip'] = tooltip; dn.emit('patch', { schema: { 'x-uid': fieldSchema['x-uid'], 'x-decorator-props': fieldSchema['x-decorator-props'], }, }); dn.refresh(); }} /> )} {!field.readPretty && ( { const schema = { ['x-uid']: fieldSchema['x-uid'], }; field.required = required; fieldSchema['required'] = required; schema['required'] = required; dn.emit('patch', { schema, }); refresh(); }} /> )} {collectionField?.target && ( { const schema = { ['x-uid']: fieldSchema['x-uid'], }; const fieldNames = { ...field.componentProps.fieldNames, label, }; fieldSchema['x-component-props'] = fieldSchema['x-component-props'] || {}; fieldSchema['x-component-props']['fieldNames'] = fieldNames; field.componentProps.fieldNames = fieldNames; schema['x-component-props'] = { fieldNames, }; dn.emit('patch', { schema, }); dn.refresh(); }} /> )} {collectionField && } ); };