11import { sveltify } from '@svelte-preprocess-react' ;
22import { useEffect } from 'react' ;
33import { useFunction } from '@utils/hooks/useFunction' ;
4+ import { useMemoizedEqualValue } from '@utils/hooks/useMemoizedEqualValue' ;
45import { useMemoizedFn } from '@utils/hooks/useMemoizedFn' ;
56import { renderParamsSlot } from '@utils/renderParamsSlot' ;
67import { Form as AForm , type GetProps } from 'antd' ;
@@ -22,13 +23,14 @@ export const Form = sveltify<FormProps, ['requiredMark']>(
2223 feedbackIcons,
2324 slots,
2425 onResetFormAction,
26+ children,
2527 ...props
2628 } ) => {
2729 const [ form ] = AForm . useForm ( ) ;
2830 const feedbackIconsFunction = useFunction ( feedbackIcons ) ;
2931 const requiredMarkFunction = useFunction ( requiredMark ) ;
3032 const onResetFormActionMemoized = useMemoizedFn ( onResetFormAction ) ;
31-
33+ const valueMemoized = useMemoizedEqualValue ( value ) ;
3234 useEffect ( ( ) => {
3335 switch ( formAction ) {
3436 case 'reset' :
@@ -45,12 +47,13 @@ export const Form = sveltify<FormProps, ['requiredMark']>(
4547 } , [ form , formAction , onResetFormActionMemoized ] ) ;
4648
4749 useEffect ( ( ) => {
48- if ( value ) {
49- form . setFieldsValue ( value ) ;
50+ if ( valueMemoized ) {
51+ form . setFieldsValue ( valueMemoized ) ;
5052 } else {
5153 form . resetFields ( ) ;
5254 }
53- } , [ form , value ] ) ;
55+ } , [ form , valueMemoized ] ) ;
56+
5457 return (
5558 < AForm
5659 { ...props }
@@ -70,7 +73,9 @@ export const Form = sveltify<FormProps, ['requiredMark']>(
7073 onValueChange ( values ) ;
7174 onValuesChange ?.( changedValues , values ) ;
7275 } }
73- />
76+ >
77+ { children }
78+ </ AForm >
7479 ) ;
7580 }
7681) ;
0 commit comments