Merge pull request #1046 from automatisch/move-paddle-provider-deeper-in-app-tree

refactor(paddle): move script injection closer to checkout
This commit is contained in:
Ömer Faruk Aydın
2023-04-07 23:07:02 +03:00
committed by GitHub
3 changed files with 16 additions and 8 deletions

View File

@@ -39,11 +39,19 @@ export const PaddleProvider = (
React.useEffect(function loadPaddleScript() { React.useEffect(function loadPaddleScript() {
if (!isCloud) return; if (!isCloud) return;
const isInjected = document.getElementById('paddle-js');
if (isInjected) {
setLoaded(true);
return;
}
const g = document.createElement('script') const g = document.createElement('script')
const s = document.getElementsByTagName('script')[0]; const s = document.getElementsByTagName('script')[0];
g.src = 'https://cdn.paddle.com/paddle/paddle.js'; g.src = 'https://cdn.paddle.com/paddle/paddle.js';
g.defer = true; g.defer = true;
g.async = true; g.async = true;
g.id = 'paddle-js';
if (s.parentNode) { if (s.parentNode) {
s.parentNode.insertBefore(g, s); s.parentNode.insertBefore(g, s);

View File

@@ -6,7 +6,6 @@ import ApolloProvider from 'components/ApolloProvider';
import SnackbarProvider from 'components/SnackbarProvider'; import SnackbarProvider from 'components/SnackbarProvider';
import { AuthenticationProvider } from 'contexts/Authentication'; import { AuthenticationProvider } from 'contexts/Authentication';
import { AutomatischInfoProvider } from 'contexts/AutomatischInfo'; import { AutomatischInfoProvider } from 'contexts/AutomatischInfo';
import { PaddleProvider } from 'contexts/Paddle.ee';
import Router from 'components/Router'; import Router from 'components/Router';
import LiveChat from 'components/LiveChat/index.ee'; import LiveChat from 'components/LiveChat/index.ee';
import routes from 'routes'; import routes from 'routes';
@@ -19,13 +18,11 @@ ReactDOM.render(
<ApolloProvider> <ApolloProvider>
<AutomatischInfoProvider> <AutomatischInfoProvider>
<IntlProvider> <IntlProvider>
<PaddleProvider>
<ThemeProvider> <ThemeProvider>
{routes} {routes}
<LiveChat /> <LiveChat />
</ThemeProvider> </ThemeProvider>
</PaddleProvider>
</IntlProvider> </IntlProvider>
</AutomatischInfoProvider> </AutomatischInfoProvider>
</ApolloProvider> </ApolloProvider>

View File

@@ -1,5 +1,6 @@
import { Route, Navigate } from 'react-router-dom'; import { Route, Navigate } from 'react-router-dom';
import SettingsLayout from 'components/SettingsLayout'; import SettingsLayout from 'components/SettingsLayout';
import { PaddleProvider } from 'contexts/Paddle.ee';
import ProfileSettings from 'pages/ProfileSettings'; import ProfileSettings from 'pages/ProfileSettings';
import BillingAndUsageSettings from 'pages/BillingAndUsageSettings/index.ee'; import BillingAndUsageSettings from 'pages/BillingAndUsageSettings/index.ee';
import PlanUpgrade from 'pages/PlanUpgrade/index.ee'; import PlanUpgrade from 'pages/PlanUpgrade/index.ee';
@@ -30,7 +31,9 @@ export default (
path={URLS.SETTINGS_PLAN_UPGRADE} path={URLS.SETTINGS_PLAN_UPGRADE}
element={ element={
<SettingsLayout> <SettingsLayout>
<PaddleProvider>
<PlanUpgrade /> <PlanUpgrade />
</PaddleProvider>
</SettingsLayout> </SettingsLayout>
} }
/> />