import { IRecursionFieldProps, ISchemaFieldProps, RecursionField, Schema } from '@formily/react';
import React, { useMemo } from 'react';
import { SchemaComponentOptions } from './SchemaComponentOptions';
function toSchema(schema?: any) {
if (Schema.isSchemaInstance(schema)) {
return schema;
}
if (schema.name) {
return new Schema({
type: 'object',
properties: {
[schema.name]: schema,
},
});
}
return new Schema(schema);
}
const useMemoizedSchema = (schema) => {
return useMemo(() => toSchema(schema), []);
};
const RecursionSchemaComponent = (props: ISchemaFieldProps) => {
const { components, scope, schema, ...others } = props;
return (
);
};
const MemoizedSchemaComponent = (props: ISchemaFieldProps) => {
const { schema, ...others } = props;
const s = useMemoizedSchema(schema);
return ;
};
export const SchemaComponent = (props: (ISchemaFieldProps | IRecursionFieldProps) & { memoized?: boolean }) => {
const { memoized, ...others } = props;
if (memoized) {
return ;
}
return ;
};