Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

replace ReactDOM.render() with createRoot() for React 18 compatibility #10369

Open
wants to merge 4 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions changelog/fix-7074
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
Significance: patch
Type: fix

Replaced deprecated ReactDOM.render() with createRoot() for React 18 compatibility.
2 changes: 1 addition & 1 deletion client/checkout/woopay/connect/woopay-connect.js
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ class WoopayConnect {
self.listeners.getIframePostMessageCallback = resolve;
} );

ReactDOM.render( <WooPayConnectIframe />, hiddenDiv );
ReactDOM.createRoot( hiddenDiv ).render( <WooPayConnectIframe /> );
}

/**
Expand Down
5 changes: 2 additions & 3 deletions client/checkout/woopay/express-button/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ const renderWooPayExpressCheckoutButton = ( listenForCartChanges = {} ) => {

oldWoopayContainers.push( woopayContainer );

ReactDOM.render(
ReactDOM.createRoot( woopayContainer ).render(
<WoopayExpressCheckoutButton
listenForCartChanges={ listenForCartChanges }
buttonSettings={ getConfig( 'woopayButton' ) }
Expand All @@ -46,8 +46,7 @@ const renderWooPayExpressCheckoutButton = ( listenForCartChanges = {} ) => {
!! woopayContainer.getAttribute( 'data-product_page' )
}
emailSelector="#billing_email"
/>,
woopayContainer
/>
);
}
};
Expand Down
10 changes: 4 additions & 6 deletions client/checkout/woopay/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -49,9 +49,8 @@ const renderSaveUserSection = () => {
}
}

ReactDOM.render(
<CheckoutPageSaveUser isBlocksCheckout={ true } />,
checkoutPageSaveUserContainer
ReactDOM.createRoot( checkoutPageSaveUserContainer ).render(
<CheckoutPageSaveUser isBlocksCheckout={ true } />
);
} else {
const checkoutPageSaveUserContainer = document.createElement( 'div' );
Expand All @@ -69,9 +68,8 @@ const renderSaveUserSection = () => {
placeOrderButton
);

ReactDOM.render(
<CheckoutPageSaveUser isBlocksCheckout={ false } />,
checkoutPageSaveUserContainer
ReactDOM.createRoot( checkoutPageSaveUserContainer ).render(
<CheckoutPageSaveUser isBlocksCheckout={ false } />
);
}
}
Expand Down
5 changes: 2 additions & 3 deletions client/order/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ jQuery( function ( $ ) {
return;
}

ReactDOM.render(
ReactDOM.createRoot( container ).render(
<>
{ testMode && <TestModeNotice /> }

Expand All @@ -120,8 +120,7 @@ jQuery( function ( $ ) {
onDisableOrderRefund={ disableWooOrderRefundButton }
/>
) }
</>,
container
</>
);
}
} );
5 changes: 2 additions & 3 deletions client/payment-gateways/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,7 @@ const paymentGatewaysContainer = document.getElementById(
'wcpay-payment-gateways-container'
);
if ( paymentGatewaysContainer ) {
ReactDOM.render(
<PaymentGatewaysConfirmation />,
paymentGatewaysContainer
ReactDOM.createRoot( paymentGatewaysContainer ).render(
<PaymentGatewaysConfirmation />
);
}
5 changes: 2 additions & 3 deletions client/plugins-page/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,6 @@ const PluginsPage = () => {
);
};

ReactDOM.render(
<PluginsPage />,
ReactDOM.createRoot(
document.querySelector( '#woopayments-plugins-page-app' )
);
).render( <PluginsPage /> );
10 changes: 4 additions & 6 deletions client/settings/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,12 @@ const settingsContainer = document.getElementById(
'wcpay-account-settings-container'
);
if ( settingsContainer ) {
ReactDOM.render(
ReactDOM.createRoot( settingsContainer ).render(
<WCPaySettingsContext.Provider value={ wcpaySettings }>
<ErrorBoundary>
<SettingsManager />
</ErrorBoundary>
</WCPaySettingsContext.Provider>,
settingsContainer
</WCPaySettingsContext.Provider>
);
}

Expand All @@ -37,12 +36,11 @@ const expressCheckoutSettingsContainer = document.getElementById(
if ( expressCheckoutSettingsContainer ) {
const methodId = expressCheckoutSettingsContainer.dataset.methodId;

ReactDOM.render(
ReactDOM.createRoot( expressCheckoutSettingsContainer ).render(
<WCPaySettingsContext.Provider value={ wcpaySettings }>
<ErrorBoundary>
<ExpressCheckoutSettings methodId={ methodId } />
</ErrorBoundary>
</WCPaySettingsContext.Provider>,
expressCheckoutSettingsContainer
</WCPaySettingsContext.Provider>
);
}
2 changes: 1 addition & 1 deletion client/tos/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -34,5 +34,5 @@ function renderTosModal() {
const container = document.createElement( 'div' );
container.id = 'wcpay-tos-container';
document.body.appendChild( container );
ReactDOM.render( <TosModal />, container );
ReactDOM.createRoot( container ).render( <TosModal /> );
}
5 changes: 2 additions & 3 deletions includes/multi-currency/client/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,6 @@ const MultiCurrencySettingsPage = () => {
);
};

ReactDOM.render(
<MultiCurrencySettingsPage />,
ReactDOM.createRoot(
document.querySelector( '#wcpay_multi_currency_settings_container' )
);
).render( <MultiCurrencySettingsPage /> );
Loading