diff --git a/packages/react-fetch/src/ReactFetchBrowser.js b/packages/react-fetch/src/ReactFetchBrowser.js index e6e3f369d5532..becf67a916ac5 100644 --- a/packages/react-fetch/src/ReactFetchBrowser.js +++ b/packages/react-fetch/src/ReactFetchBrowser.js @@ -9,7 +9,7 @@ import type {Wakeable} from 'shared/ReactTypes'; -import * as React from 'react'; +import {getCacheForType} from 'react'; const Pending = 0; const Resolved = 1; @@ -35,12 +35,8 @@ type Result = PendingResult | ResolvedResult | RejectedResult; // TODO: this is a browser-only version. Add a separate Node entry point. const nativeFetch = window.fetch; -const ReactCurrentDispatcher = - React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED - .ReactCurrentDispatcher; - function getResultMap(): Map { - return ReactCurrentDispatcher.current.getCacheForType(createResultMap); + return getCacheForType(createResultMap); } function createResultMap(): Map { diff --git a/packages/react-fetch/src/ReactFetchNode.js b/packages/react-fetch/src/ReactFetchNode.js index 7edb51c249d1e..666b64db2d698 100644 --- a/packages/react-fetch/src/ReactFetchNode.js +++ b/packages/react-fetch/src/ReactFetchNode.js @@ -11,7 +11,7 @@ import type {Wakeable} from 'shared/ReactTypes'; import * as http from 'http'; import * as https from 'https'; -import * as React from 'react'; +import {getCacheForType} from 'react'; type FetchResponse = {| // Properties @@ -74,12 +74,8 @@ type RejectedResult = {| type Result = PendingResult | ResolvedResult | RejectedResult; -const ReactCurrentDispatcher = - React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED - .ReactCurrentDispatcher; - function getResultMap(): Map> { - return ReactCurrentDispatcher.current.getCacheForType(createResultMap); + return getCacheForType(createResultMap); } function createResultMap(): Map> { diff --git a/packages/react/index.classic.fb.js b/packages/react/index.classic.fb.js index db5d2b2a22331..07682b4364c3c 100644 --- a/packages/react/index.classic.fb.js +++ b/packages/react/index.classic.fb.js @@ -42,6 +42,8 @@ export { __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED, createFactory, // exposeConcurrentModeAPIs + getCacheForType, + getCacheForType as unstable_getCacheForType, useTransition, useTransition as unstable_useTransition, useDeferredValue, diff --git a/packages/react/index.experimental.js b/packages/react/index.experimental.js index 3b2b47f1ee7cf..43316dd27e03a 100644 --- a/packages/react/index.experimental.js +++ b/packages/react/index.experimental.js @@ -40,6 +40,7 @@ export { __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED, createFactory, // exposeConcurrentModeAPIs + getCacheForType as unstable_getCacheForType, useTransition as unstable_useTransition, useDeferredValue as unstable_useDeferredValue, startTransition as unstable_startTransition, diff --git a/packages/react/index.js b/packages/react/index.js index 5a170667c0826..1435df888cd1e 100644 --- a/packages/react/index.js +++ b/packages/react/index.js @@ -70,6 +70,8 @@ export { version, __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED, createFactory, + getCacheForType, + getCacheForType as unstable_getCacheForType, useTransition, useTransition as unstable_useTransition, startTransition, diff --git a/packages/react/index.modern.fb.js b/packages/react/index.modern.fb.js index 8217fa158d12c..638bfe8db656d 100644 --- a/packages/react/index.modern.fb.js +++ b/packages/react/index.modern.fb.js @@ -41,6 +41,8 @@ export { version, __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED, // exposeConcurrentModeAPIs + getCacheForType, + getCacheForType as unstable_getCacheForType, useTransition, useTransition as unstable_useTransition, useDeferredValue, diff --git a/packages/react/src/React.js b/packages/react/src/React.js index c5e61fb55c67b..35251fb553992 100644 --- a/packages/react/src/React.js +++ b/packages/react/src/React.js @@ -33,6 +33,7 @@ import {lazy} from './ReactLazy'; import {forwardRef} from './ReactForwardRef'; import {memo} from './ReactMemo'; import { + getCacheForType, useCallback, useContext, useEffect, @@ -105,6 +106,7 @@ export { // Deprecated behind disableCreateFactory createFactory, // Concurrent Mode + getCacheForType, useTransition, startTransition, useDeferredValue, diff --git a/packages/react/src/ReactHooks.js b/packages/react/src/ReactHooks.js index e1e0879c5f9f2..b1ba91029c8a2 100644 --- a/packages/react/src/ReactHooks.js +++ b/packages/react/src/ReactHooks.js @@ -36,6 +36,11 @@ function resolveDispatcher() { return dispatcher; } +export function getCacheForType(resourceType: () => T): T { + const dispatcher = resolveDispatcher(); + return dispatcher.getCacheForType(resourceType); +} + export function useContext( Context: ReactContext, unstable_observedBits: number | boolean | void,