diff --git a/packages/react-is/README.md b/packages/react-is/README.md index d255977618178..c446e89c6b0fe 100644 --- a/packages/react-is/README.md +++ b/packages/react-is/README.md @@ -40,7 +40,6 @@ ReactIs.isValidElementType(FunctionComponent); // true ReactIs.isValidElementType(ForwardRefComponent); // true ReactIs.isValidElementType(Context.Provider); // true ReactIs.isValidElementType(Context.Consumer); // true -ReactIs.isValidElementType(React.createFactory("div")); // true ``` ### Determining an Element's Type diff --git a/packages/react-is/src/__tests__/ReactIs-test.js b/packages/react-is/src/__tests__/ReactIs-test.js index 5b63eebd529fd..f9d9dc923cc23 100644 --- a/packages/react-is/src/__tests__/ReactIs-test.js +++ b/packages/react-is/src/__tests__/ReactIs-test.js @@ -67,18 +67,6 @@ describe('ReactIs', () => { expect(ReactIs.isValidElementType(MemoComponent)).toEqual(true); expect(ReactIs.isValidElementType(Context.Provider)).toEqual(true); expect(ReactIs.isValidElementType(Context.Consumer)).toEqual(true); - if (!__EXPERIMENTAL__) { - let factory; - expect(() => { - factory = React.createFactory('div'); - }).toWarnDev( - 'Warning: React.createFactory() is deprecated and will be removed in a ' + - 'future major release. Consider using JSX or use React.createElement() ' + - 'directly instead.', - {withoutStack: true}, - ); - expect(ReactIs.isValidElementType(factory)).toEqual(true); - } expect(ReactIs.isValidElementType(React.Fragment)).toEqual(true); expect(ReactIs.isValidElementType(React.StrictMode)).toEqual(true); expect(ReactIs.isValidElementType(React.Suspense)).toEqual(true); diff --git a/packages/react/index.classic.fb.js b/packages/react/index.classic.fb.js index 949a23c70ab33..c8a3a6012a27a 100644 --- a/packages/react/index.classic.fb.js +++ b/packages/react/index.classic.fb.js @@ -20,7 +20,6 @@ export { cloneElement, createContext, createElement, - createFactory, createRef, use, forwardRef, diff --git a/packages/react/index.experimental.js b/packages/react/index.experimental.js index 30472a43d33f6..1adaed959e512 100644 --- a/packages/react/index.experimental.js +++ b/packages/react/index.experimental.js @@ -20,7 +20,6 @@ export { cloneElement, createContext, createElement, - createFactory, createRef, use, forwardRef, diff --git a/packages/react/index.js b/packages/react/index.js index a3bd5737066d9..2f267f6eeb0c0 100644 --- a/packages/react/index.js +++ b/packages/react/index.js @@ -41,7 +41,6 @@ export { cloneElement, createContext, createElement, - createFactory, createRef, use, forwardRef, diff --git a/packages/react/index.stable.js b/packages/react/index.stable.js index ebab580542b24..5e356cf698987 100644 --- a/packages/react/index.stable.js +++ b/packages/react/index.stable.js @@ -20,7 +20,6 @@ export { cloneElement, createContext, createElement, - createFactory, createRef, use, forwardRef, diff --git a/packages/react/src/ReactClient.js b/packages/react/src/ReactClient.js index 711afdad469de..83bcdcc8226a2 100644 --- a/packages/react/src/ReactClient.js +++ b/packages/react/src/ReactClient.js @@ -27,7 +27,6 @@ import {createRef} from './ReactCreateRef'; import {forEach, map, count, toArray, only} from './ReactChildren'; import { createElement, - createFactory, cloneElement, isValidElement, } from './jsx/ReactJSXElement'; @@ -62,7 +61,6 @@ import { useOptimistic, useActionState, } from './ReactHooks'; - import ReactSharedInternals from './ReactSharedInternalsClient'; import {startTransition} from './ReactStartTransition'; import {act} from './ReactAct'; @@ -111,8 +109,6 @@ export { isValidElement, ReactVersion as version, ReactSharedInternals as __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED, - // Deprecated behind disableCreateFactory - createFactory, // Concurrent Mode useTransition, startTransition, diff --git a/packages/react/src/__tests__/ReactElementValidator-test.internal.js b/packages/react/src/__tests__/ReactElementValidator-test.internal.js index b1d7257ccdb10..d3e2ed78e5ba6 100644 --- a/packages/react/src/__tests__/ReactElementValidator-test.internal.js +++ b/packages/react/src/__tests__/ReactElementValidator-test.internal.js @@ -331,34 +331,6 @@ describe('ReactElementValidator', () => { ); }); - if (!__EXPERIMENTAL__) { - it('should warn when accessing .type on an element factory', () => { - function TestComponent() { - return
; - } - - let TestFactory; - - expect(() => { - TestFactory = React.createFactory(TestComponent); - }).toWarnDev( - 'Warning: React.createFactory() is deprecated and will be removed in a ' + - 'future major release. Consider using JSX or use React.createElement() ' + - 'directly instead.', - {withoutStack: true}, - ); - - expect(() => TestFactory.type).toWarnDev( - 'Warning: Factory.type is deprecated. Access the class directly before ' + - 'passing it to createFactory.', - {withoutStack: true}, - ); - - // Warn once, not again - expect(TestFactory.type).toBe(TestComponent); - }); - } - it('does not warn when using DOM node as children', async () => { class DOMContainer extends React.Component { ref; diff --git a/packages/react/src/jsx/ReactJSXElement.js b/packages/react/src/jsx/ReactJSXElement.js index e85e2cfc87e7d..3a0027c2b6a32 100644 --- a/packages/react/src/jsx/ReactJSXElement.js +++ b/packages/react/src/jsx/ReactJSXElement.js @@ -757,49 +757,6 @@ export function createElement(type, config, children) { return element; } -let didWarnAboutDeprecatedCreateFactory = false; - -/** - * Return a function that produces ReactElements of a given type. - * See https://reactjs.org/docs/react-api.html#createfactory - */ -export function createFactory(type) { - const factory = createElement.bind(null, type); - // Expose the type on the factory and the prototype so that it can be - // easily accessed on elements. E.g. `.type === Foo`. - // This should not be named `constructor` since this may not be the function - // that created the element, and it may not even be a constructor. - // Legacy hook: remove it - factory.type = type; - - if (__DEV__) { - if (!didWarnAboutDeprecatedCreateFactory) { - didWarnAboutDeprecatedCreateFactory = true; - console.warn( - 'React.createFactory() is deprecated and will be removed in ' + - 'a future major release. Consider using JSX ' + - 'or use React.createElement() directly instead.', - ); - } - // Legacy hook: remove it - Object.defineProperty(factory, 'type', { - enumerable: false, - get: function () { - console.warn( - 'Factory.type is deprecated. Access the class directly ' + - 'before passing it to createFactory.', - ); - Object.defineProperty(this, 'type', { - value: type, - }); - return type; - }, - }); - } - - return factory; -} - export function cloneAndReplaceKey(oldElement, newKey) { return ReactElement( oldElement.type,