import { createForm } from '@formily/core'; import { useField } from '@formily/react'; import { Spin } from 'antd'; import React, { createContext, useContext, useEffect, useMemo } from 'react'; import { BlockProvider, useBlockRequestContext } from './BlockProvider'; export const FormBlockContext = createContext({}); const InternalFormBlockProvider = (props) => { const { action, readPretty } = props; const field = useField(); const form = useMemo( () => createForm({ readPretty, }), [], ); const { resource, service } = useBlockRequestContext(); if (service.loading) { return ; } return ( {props.children} ); }; export const FormBlockProvider = (props) => { return ( ); }; export const useFormBlockContext = () => { return useContext(FormBlockContext); }; export const useFormBlockProps = () => { const ctx = useFormBlockContext(); useEffect(() => { ctx.form.setInitialValues(ctx.service?.data?.data); }, []); return { form: ctx.form, }; };