import { useCollectionField } from '@nocobase/client'; import { connect, isValid, mapProps, mapReadPretty, useField } from '@nocobase/schema'; import { Radio, Tag } from 'antd'; import React from 'react'; import { useEffect } from 'react'; export const Movement = connect( Radio.Group, mapProps( { dataSource: 'options', }, (props: any, field: any) => { useEffect(() => { const defaultOption = field.dataSource?.find((option) => option.value === props.value); if (defaultOption) { field.setValue(defaultOption.value); } }, [props.value, field.dataSource]); return { ...props, }; }, ), mapReadPretty((props) => { if (!isValid(props.value)) { return
; } const { value } = props; const field = useField(); const collectionField = useCollectionField(); const dataSource = field.dataSource || collectionField?.uiSchema.enum || []; return (
{dataSource .filter((option) => option.value === value) .map((option, key) => ( {option.label} ))}
); }), );