dillon1000/react
Commit
Browse files Implement experimental_useFormStatus (#26722)
This hook reads the status of its ancestor form component, if it exists.
```js
const {pending, data, action, method} = useFormStatus();
```
It can be used to implement a loading indicator, for example. You can
think of it as a shortcut for implementing a loading state with the
useTransition hook.
For now, it's only available in the experimental channel. We'll share
docs once its closer to being stable. There are additional APIs that
will ship alongside it.
Internally it's implemented using startTransition + a context object.
That's a good way to think about its behavior, but the actual
implementation details may change in the future.
Because form elements cannot be nested, the implementation in the
reconciler does not bother to keep track of multiple nested "transition
providers". So although it's implemented using generic Fiber config
methods, it does currently make some assumptions based on React DOM's
requirements.Changed paths23 files
First-parent comparisonpackages/react-art/src/ReactFiberConfigART.js ModifiedM packages/react-dom-bindings/src/client/ReactFiberConfigDOM.js ModifiedM packages/react-dom-bindings/src/events/ReactDOMEventReplaying.js ModifiedM packages/react-dom-bindings/src/events/plugins/FormActionEventPlugin.js ModifiedM packages/react-dom-bindings/src/server/ReactFizzConfigDOM.js ModifiedM packages/react-dom-bindings/src/server/ReactFizzConfigDOMLegacy.js ModifiedA packages/react-dom-bindings/src/shared/ReactDOMFormActions.js AddedD packages/react-dom/src/ReactDOMFormActions.js DeletedM packages/react-dom/src/__tests__/ReactDOMForm-test.js ModifiedM packages/react-dom/src/client/ReactDOM.js ModifiedM packages/react-native-renderer/src/ReactFiberConfigFabric.js ModifiedM packages/react-native-renderer/src/ReactFiberConfigNative.js ModifiedM packages/react-native-renderer/src/server/ReactFizzConfigNative.js ModifiedM packages/react-noop-renderer/src/createReactNoop.js ModifiedM packages/react-reconciler/src/ReactFiberBeginWork.js ModifiedM packages/react-reconciler/src/ReactFiberHooks.js ModifiedM packages/react-reconciler/src/ReactFiberHostContext.js ModifiedM packages/react-reconciler/src/ReactFiberNewContext.js ModifiedM packages/react-reconciler/src/ReactInternalTypes.js ModifiedM packages/react-reconciler/src/forks/ReactFiberConfig.custom.js ModifiedM packages/react-server/src/ReactFizzHooks.js ModifiedM packages/react-server/src/forks/ReactFizzConfig.custom.js ModifiedM packages/react-test-renderer/src/ReactFiberConfigTestHost.js ModifiedPatch
Files changed
Rendering syntax-highlighted changes…