import {
  FormilyEditForm,
  FormilyEditFormProps,
} from "@chuntianxiaozhu/adminreactcomps";
import React from "react";
import type { Form as FormType } from "@formily/core";

import defaultSchemaProps from "./config";
interface IProps extends FormilyEditFormProps {
  formilyRef?: React.ForwardedRef<FormType>;
}

function Form(props: IProps) {
  const { formProps, schemaProps = {}, formilyRef, ...resetProps } = props;
  const newSchemaProps = {
    components: {
      ...defaultSchemaProps.components,
      ...schemaProps?.components,
    },
    scope: {
      ...defaultSchemaProps.scope,
      ...schemaProps?.scope,
    },
  };

  return (
    <FormilyEditForm
      schemaProps={newSchemaProps}
      ref={formilyRef}
      {...resetProps}
    />
  );
}

export default Form;
