diff --git a/packages/react-on-rails/src/createReactOutput.ts b/packages/react-on-rails/src/createReactOutput.ts index a63f886498..93f51eb8a6 100644 --- a/packages/react-on-rails/src/createReactOutput.ts +++ b/packages/react-on-rails/src/createReactOutput.ts @@ -1,4 +1,4 @@ -import * as React from 'react'; +import { createElement, isValidElement, type ReactElement } from 'react'; import type { CreateParams, ReactComponent, RenderFunction, CreateReactOutputResult } from './types/index.ts'; import { isServerRenderHash, isPromise } from './isServerRenderResult.ts'; @@ -6,8 +6,8 @@ function createReactElementFromRenderFunctionResult( renderFunctionResult: ReactComponent, name: string, props: Record | undefined, -): React.ReactElement { - if (React.isValidElement(renderFunctionResult)) { +): ReactElement { + if (isValidElement(renderFunctionResult)) { // If already a ReactElement, then just return it. console.error( `Warning: ReactOnRails: Your registered render-function (ReactOnRails.register) for ${name} @@ -19,7 +19,7 @@ work if you return JSX. Update by wrapping the result JSX of ${name} in a fat ar } // If a component, then wrap in an element - return React.createElement(renderFunctionResult, props); + return createElement(renderFunctionResult, props); } /** @@ -88,5 +88,5 @@ export default function createReactOutput({ return createReactElementFromRenderFunctionResult(renderFunctionResult, name, props); } // else - return React.createElement(component as ReactComponent, props); + return createElement(component as ReactComponent, props); } diff --git a/packages/react-on-rails/src/handleError.ts b/packages/react-on-rails/src/handleError.ts index 3419f71586..c043dc0a2a 100644 --- a/packages/react-on-rails/src/handleError.ts +++ b/packages/react-on-rails/src/handleError.ts @@ -1,11 +1,11 @@ -import * as React from 'react'; +import { createElement } from 'react'; import { renderToString } from './ReactDOMServer.cts'; import type { ErrorOptions } from './types/index.ts'; import generateRenderingErrorMessage from './generateRenderingErrorMessage.ts'; const handleError = (options: ErrorOptions): string => { const msg = generateRenderingErrorMessage(options); - const reactElement = React.createElement('pre', null, msg); + const reactElement = createElement('pre', null, msg); return renderToString(reactElement); }; diff --git a/packages/react-on-rails/src/serverRenderReactComponent.ts b/packages/react-on-rails/src/serverRenderReactComponent.ts index f47c4e9542..328245518f 100644 --- a/packages/react-on-rails/src/serverRenderReactComponent.ts +++ b/packages/react-on-rails/src/serverRenderReactComponent.ts @@ -1,5 +1,4 @@ -import * as React from 'react'; -import type { ReactElement } from 'react'; +import { isValidElement, type ReactElement } from 'react'; // ComponentRegistry is accessed via globalThis.ReactOnRails.getComponent for cross-bundle compatibility import createReactOutput from './createReactOutput.ts'; @@ -69,7 +68,7 @@ function processPromise( return '{}'; } return result.then((promiseResult) => { - if (React.isValidElement(promiseResult)) { + if (isValidElement(promiseResult)) { return processReactElement(promiseResult); } return promiseResult;