@@ -2747,7 +2747,7 @@ if (__DEV__) {
2747
2747
return dispatcher.useFormState(action, initialState, permalink);
2748
2748
}
2749
2749
}
2750
- function requestFormReset$1 (form) {
2750
+ function requestFormReset$2 (form) {
2751
2751
Internals.d
2752
2752
/* ReactDOMCurrentDispatcher */
2753
2753
.r(
@@ -15848,68 +15848,8 @@ if (__DEV__) {
15848
15848
);
15849
15849
}
15850
15850
15851
- var queue;
15852
-
15853
- if (formFiber.memoizedState === null) {
15854
- // Upgrade this host component fiber to be stateful. We're going to pretend
15855
- // it was stateful all along so we can reuse most of the implementation
15856
- // for function components and useTransition.
15857
- //
15858
- // Create the state hook used by TransitionAwareHostComponent. This is
15859
- // essentially an inlined version of mountState.
15860
- var newQueue = {
15861
- pending: null,
15862
- lanes: NoLanes,
15863
- // We're going to cheat and intentionally not create a bound dispatch
15864
- // method, because we can call it directly in startTransition.
15865
- dispatch: null,
15866
- lastRenderedReducer: basicStateReducer,
15867
- lastRenderedState: NotPendingTransition
15868
- };
15869
- queue = newQueue;
15870
- var stateHook = {
15871
- memoizedState: NotPendingTransition,
15872
- baseState: NotPendingTransition,
15873
- baseQueue: null,
15874
- queue: newQueue,
15875
- next: null
15876
- }; // We use another state hook to track whether the form needs to be reset.
15877
- // The state is an empty object. To trigger a reset, we update the state
15878
- // to a new object. Then during rendering, we detect that the state has
15879
- // changed and schedule a commit effect.
15880
-
15881
- var initialResetState = {};
15882
- var newResetStateQueue = {
15883
- pending: null,
15884
- lanes: NoLanes,
15885
- // We're going to cheat and intentionally not create a bound dispatch
15886
- // method, because we can call it directly in startTransition.
15887
- dispatch: null,
15888
- lastRenderedReducer: basicStateReducer,
15889
- lastRenderedState: initialResetState
15890
- };
15891
- var resetStateHook = {
15892
- memoizedState: initialResetState,
15893
- baseState: initialResetState,
15894
- baseQueue: null,
15895
- queue: newResetStateQueue,
15896
- next: null
15897
- };
15898
- stateHook.next = resetStateHook; // Add the hook list to both fiber alternates. The idea is that the fiber
15899
- // had this hook all along.
15900
-
15901
- formFiber.memoizedState = stateHook;
15902
- var alternate = formFiber.alternate;
15903
-
15904
- if (alternate !== null) {
15905
- alternate.memoizedState = stateHook;
15906
- }
15907
- } else {
15908
- // This fiber was already upgraded to be stateful.
15909
- var _stateHook = formFiber.memoizedState;
15910
- queue = _stateHook.queue;
15911
- }
15912
-
15851
+ var stateHook = ensureFormComponentIsStateful(formFiber);
15852
+ var queue = stateHook.queue;
15913
15853
startTransition(
15914
15854
formFiber,
15915
15855
queue,
@@ -15918,13 +15858,76 @@ if (__DEV__) {
15918
15858
// once more of this function is implemented.
15919
15859
function () {
15920
15860
// Automatically reset the form when the action completes.
15921
- requestFormResetImpl (formFiber);
15861
+ requestFormReset$1 (formFiber);
15922
15862
return callback(formData);
15923
15863
}
15924
15864
);
15925
15865
}
15926
15866
15927
- function requestFormResetImpl(formFiber) {
15867
+ function ensureFormComponentIsStateful(formFiber) {
15868
+ var existingStateHook = formFiber.memoizedState;
15869
+
15870
+ if (existingStateHook !== null) {
15871
+ // This fiber was already upgraded to be stateful.
15872
+ return existingStateHook;
15873
+ } // Upgrade this host component fiber to be stateful. We're going to pretend
15874
+ // it was stateful all along so we can reuse most of the implementation
15875
+ // for function components and useTransition.
15876
+ //
15877
+ // Create the state hook used by TransitionAwareHostComponent. This is
15878
+ // essentially an inlined version of mountState.
15879
+
15880
+ var newQueue = {
15881
+ pending: null,
15882
+ lanes: NoLanes,
15883
+ // We're going to cheat and intentionally not create a bound dispatch
15884
+ // method, because we can call it directly in startTransition.
15885
+ dispatch: null,
15886
+ lastRenderedReducer: basicStateReducer,
15887
+ lastRenderedState: NotPendingTransition
15888
+ };
15889
+ var stateHook = {
15890
+ memoizedState: NotPendingTransition,
15891
+ baseState: NotPendingTransition,
15892
+ baseQueue: null,
15893
+ queue: newQueue,
15894
+ next: null
15895
+ }; // We use another state hook to track whether the form needs to be reset.
15896
+ // The state is an empty object. To trigger a reset, we update the state
15897
+ // to a new object. Then during rendering, we detect that the state has
15898
+ // changed and schedule a commit effect.
15899
+
15900
+ var initialResetState = {};
15901
+ var newResetStateQueue = {
15902
+ pending: null,
15903
+ lanes: NoLanes,
15904
+ // We're going to cheat and intentionally not create a bound dispatch
15905
+ // method, because we can call it directly in startTransition.
15906
+ dispatch: null,
15907
+ lastRenderedReducer: basicStateReducer,
15908
+ lastRenderedState: initialResetState
15909
+ };
15910
+ var resetStateHook = {
15911
+ memoizedState: initialResetState,
15912
+ baseState: initialResetState,
15913
+ baseQueue: null,
15914
+ queue: newResetStateQueue,
15915
+ next: null
15916
+ };
15917
+ stateHook.next = resetStateHook; // Add the hook list to both fiber alternates. The idea is that the fiber
15918
+ // had this hook all along.
15919
+
15920
+ formFiber.memoizedState = stateHook;
15921
+ var alternate = formFiber.alternate;
15922
+
15923
+ if (alternate !== null) {
15924
+ alternate.memoizedState = stateHook;
15925
+ }
15926
+
15927
+ return stateHook;
15928
+ }
15929
+
15930
+ function requestFormReset$1(formFiber) {
15928
15931
var transition = requestCurrentTransition();
15929
15932
15930
15933
{
@@ -15945,8 +15948,9 @@ if (__DEV__) {
15945
15948
}
15946
15949
}
15947
15950
15951
+ var stateHook = ensureFormComponentIsStateful(formFiber);
15948
15952
var newResetState = {};
15949
- var resetStateHook = formFiber.memoizedState .next;
15953
+ var resetStateHook = stateHook .next;
15950
15954
var resetStateQueue = resetStateHook.queue;
15951
15955
dispatchSetState(formFiber, resetStateQueue, newResetState);
15952
15956
}
@@ -36226,7 +36230,7 @@ if (__DEV__) {
36226
36230
return root;
36227
36231
}
36228
36232
36229
- var ReactVersion = "19.0.0-www-classic-c937066f ";
36233
+ var ReactVersion = "19.0.0-www-classic-3b25da96 ";
36230
36234
36231
36235
function createPortal$1(
36232
36236
children,
@@ -45708,8 +45712,9 @@ if (__DEV__) {
45708
45712
formInst !== null &&
45709
45713
formInst.tag === HostComponent &&
45710
45714
formInst.type === "form"
45711
- );
45712
- else {
45715
+ ) {
45716
+ requestFormReset$1(formInst);
45717
+ } else {
45713
45718
// This form was either not rendered by this React renderer (or it's an
45714
45719
// invalid type). Try the next one.
45715
45720
//
@@ -49788,7 +49793,7 @@ if (__DEV__) {
49788
49793
exports.preload = preload;
49789
49794
exports.preloadModule = preloadModule;
49790
49795
exports.render = render;
49791
- exports.requestFormReset = requestFormReset$1 ;
49796
+ exports.requestFormReset = requestFormReset$2 ;
49792
49797
exports.unmountComponentAtNode = unmountComponentAtNode;
49793
49798
exports.unstable_batchedUpdates = batchedUpdates$1;
49794
49799
exports.unstable_createEventHandle = createEventHandle;
0 commit comments