import { ArrayItems } from '@formily/antd'; import { ISchema, useField, useFieldSchema } from '@formily/react'; import React from 'react'; import { useTranslation } from 'react-i18next'; import { useFormBlockContext } from '../../../block-provider'; import { useDetailsBlockContext } from '../../../block-provider/DetailsBlockProvider'; import { useCollection } from '../../../collection-manager'; import { useCollectionFilterOptions, useSortFields } from '../../../collection-manager/action-hooks'; import { GeneralSchemaDesigner, SchemaSettings } from '../../../schema-settings'; import { useSchemaTemplate } from '../../../schema-templates'; import { useDesignable } from '../../hooks'; import { useActionContext } from '../action'; export const FormDesigner = () => { const { name, title } = useCollection(); const template = useSchemaTemplate(); const ctx = useFormBlockContext(); const field = useField(); const fieldSchema = useFieldSchema(); const { dn } = useDesignable(); const { t } = useTranslation(); const { visible } = useActionContext(); return ( {/* */} ); }; export const ReadPrettyFormDesigner = () => { const { name, title } = useCollection(); const template = useSchemaTemplate(); return ( {/* */} ); }; export const DetailsDesigner = () => { const { name, title } = useCollection(); const template = useSchemaTemplate(); const { t } = useTranslation(); const fieldSchema = useFieldSchema(); const field = useField(); const dataSource = useCollectionFilterOptions(name); const { service } = useDetailsBlockContext(); const { dn } = useDesignable(); const sortFields = useSortFields(name); const defaultFilter = fieldSchema?.['x-decorator-props']?.params?.filter || {}; const defaultSort = fieldSchema?.['x-decorator-props']?.params?.sort || []; const sort = defaultSort?.map((item: string) => { return item.startsWith('-') ? { field: item.substring(1), direction: 'desc', } : { field: item, direction: 'asc', }; }); return ( { const params = field.decoratorProps.params || {}; params.filter = filter; field.decoratorProps.params = params; fieldSchema['x-decorator-props']['params'] = params; service.run({ ...service.params?.[0], filter }); dn.emit('patch', { schema: { ['x-uid']: fieldSchema['x-uid'], 'x-decorator-props': fieldSchema['x-decorator-props'], }, }); }} /> { const sortArr = sort.map((item) => { return item.direction === 'desc' ? `-${item.field}` : item.field; }); const params = field.decoratorProps.params || {}; params.sort = sortArr; field.decoratorProps.params = params; fieldSchema['x-decorator-props']['params'] = params; dn.emit('patch', { schema: { ['x-uid']: fieldSchema['x-uid'], 'x-decorator-props': fieldSchema['x-decorator-props'], }, }); service.run({ ...service.params?.[0], sort: sortArr }); }} /> ); };