File tree Expand file tree Collapse file tree 2 files changed +7
-8
lines changed
Expand file tree Collapse file tree 2 files changed +7
-8
lines changed Original file line number Diff line number Diff line change @@ -238,7 +238,8 @@ export type FormContext<
238238 onInput ( event : Event ) : void ;
239239 onBlur ( event : Event ) : void ;
240240 onUpdate ( options : Partial < FormOptions < Schema , FormError , FormValue > > ) : void ;
241- observe ( stateSnapshot : FormState < FormError > ) : ( ) => void ;
241+ updateFormElement ( state : FormState < FormError > ) : void ;
242+ observe ( ) : ( ) => void ;
242243 subscribe (
243244 callback : ( ) => void ,
244245 getSubject ?: ( ) => SubscriptionSubject | undefined ,
@@ -1119,7 +1120,7 @@ export function createFormContext<
11191120 }
11201121 }
11211122
1122- function observe ( stateSnapshot : FormState < FormError > ) {
1123+ function observe ( ) {
11231124 const observer = new MutationObserver ( ( mutations ) => {
11241125 const form = getFormElement ( ) ;
11251126
@@ -1155,7 +1156,6 @@ export function createFormContext<
11551156 attributes : true ,
11561157 attributeFilter : [ 'form' , 'name' ] ,
11571158 } ) ;
1158- updateFormElement ( stateSnapshot ) ;
11591159
11601160 return ( ) => {
11611161 observer . disconnect ( ) ;
@@ -1177,6 +1177,7 @@ export function createFormContext<
11771177 insert : createFormControl ( 'insert' ) ,
11781178 remove : createFormControl ( 'remove' ) ,
11791179 reorder : createFormControl ( 'reorder' ) ,
1180+ updateFormElement,
11801181 subscribe,
11811182 getState,
11821183 getSerializedState,
Original file line number Diff line number Diff line change @@ -74,11 +74,13 @@ export function useForm<
7474 ) ;
7575
7676 useSafeLayoutEffect ( ( ) => {
77+ const disconnect = context . observe ( ) ;
7778 document . addEventListener ( 'input' , context . onInput ) ;
7879 document . addEventListener ( 'focusout' , context . onBlur ) ;
7980 document . addEventListener ( 'reset' , context . onReset ) ;
8081
8182 return ( ) => {
83+ disconnect ( ) ;
8284 document . removeEventListener ( 'input' , context . onInput ) ;
8385 document . removeEventListener ( 'focusout' , context . onBlur ) ;
8486 document . removeEventListener ( 'reset' , context . onReset ) ;
@@ -101,11 +103,7 @@ export function useForm<
101103 const form = getFormMetadata ( context , subjectRef , stateSnapshot , noValidate ) ;
102104
103105 useEffect ( ( ) => {
104- const disconnect = context . observe ( stateSnapshot ) ;
105-
106- return ( ) => {
107- disconnect ( ) ;
108- } ;
106+ context . updateFormElement ( stateSnapshot ) ;
109107 } , [ context , stateSnapshot ] ) ;
110108
111109 return [ form , form . getFieldset ( ) ] ;
You can’t perform that action at this time.
0 commit comments