import { observer, useFieldSchema } from '@formily/react'; import { Switch } from 'antd'; import React from 'react'; import { useTranslation } from 'react-i18next'; import { useCollection } from '../../../../collection-manager'; import { SchemaInitializer } from '../../../../schema-initializer'; import { useDesignable } from '../../../hooks'; export const ActionInitializer = observer((props: any) => { const { name: collectName } = useCollection(); const { t } = useTranslation(); return ( Configure actions ); }); const useCurrentActionSchema = (action: string) => { const fieldSchema = useFieldSchema(); const { remove } = useDesignable(); const schema: any = fieldSchema.reduceProperties((buf, s) => { if (s['x-action'] === action) { return s; } return buf; }); return { schema, exists: !!schema, remove() { schema && remove(schema); }, }; }; const InitializeAction = SchemaInitializer.itemWrap((props) => { const { item, insert } = props; const { exists, remove } = useCurrentActionSchema(item.schema['x-action']); return ( { if (exists) { return remove(); } insert({ type: 'void', 'x-component': 'Action', ...item.schema, }); }} >
{item.title}
); });