import { CollectionFieldProvider, css, useCollectionField_deprecated, useCollection_deprecated, useCompile, useComponent, useFormBlockContext, } from '@tachybase/client'; import { Field, connect, merge, useField, useFieldSchema } from '@tachybase/schema'; import { Checkbox, Select, Space } from 'antd'; import React, { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; export const DeletedField = () => { const { t } = useTranslation(); return
{t('The field has bee deleted')}
; }; const InternalField: React.FC = (props) => { const field = useField(); const fieldSchema = useFieldSchema(); const { name, interface: interfaceType, uiSchema } = useCollectionField_deprecated(); const component = useComponent(uiSchema?.['x-component']); const compile = useCompile(); const setFieldProps = (key, value) => { field[key] = typeof field[key] === 'undefined' ? value : field[key]; }; const setRequired = () => { if (typeof fieldSchema['required'] === 'undefined') { field.required = !!uiSchema['required']; } }; const ctx = useFormBlockContext(); useEffect(() => { if (ctx?.field) { ctx.field.added = ctx.field.added || new Set(); ctx.field.added.add(fieldSchema.name); } }); useEffect(() => { if (!uiSchema) { return; } setFieldProps('content', uiSchema['x-content']); setFieldProps('description', uiSchema.description); setFieldProps('initialValue', uiSchema.default); // if (!field.validator && uiSchema['x-validator']) { // field.validator = uiSchema['x-validator']; // } if (fieldSchema['x-disabled'] === true) { field.disabled = true; } if (fieldSchema['x-read-pretty'] === true) { field.readPretty = true; } setRequired(); // @ts-ignore field.dataSource = uiSchema.enum; const originalProps = compile(uiSchema['x-component-props']) || {}; const componentProps = merge(originalProps, field.componentProps || {}); field.componentProps = componentProps; // field.component = [component, componentProps]; }, [JSON.stringify(uiSchema)]); if (!uiSchema) { return null; } return React.createElement(component, props, props.children); }; const CollectionField = connect((props) => { const fieldSchema = useFieldSchema(); return ( ); }); export enum BulkEditFormItemValueType { RemainsTheSame = 1, ChangedTo, Clear, AddAttach, } export const BulkEditField = (props: any) => { const { t } = useTranslation(); const fieldSchema = useFieldSchema(); const field = useField(); const [type, setType] = useState(BulkEditFormItemValueType.ChangedTo); const [value, setValue] = useState(null); const { getField } = useCollection_deprecated(); const collectionField = getField(fieldSchema.name) || {}; useEffect(() => { field.value = { [type]: value }; }, [type, value]); const typeChangeHandler = (val) => { setType(val); }; const valueChangeHandler = (val) => { setValue(val?.target?.value ?? val?.target?.checked ?? val); }; return ( .ant-space-item { width: 100%; } `} > {[BulkEditFormItemValueType.ChangedTo, BulkEditFormItemValueType.AddAttach].includes(type) && collectionField?.interface !== 'checkbox' && ( )} {[BulkEditFormItemValueType.ChangedTo, BulkEditFormItemValueType.AddAttach].includes(type) && collectionField?.interface === 'checkbox' && } ); };