diff --git a/packages/web/src/javascripts/Components/Footer/Footer.tsx b/packages/web/src/javascripts/Components/Footer/Footer.tsx index 3c73020d9..88f79d0d2 100644 --- a/packages/web/src/javascripts/Components/Footer/Footer.tsx +++ b/packages/web/src/javascripts/Components/Footer/Footer.tsx @@ -19,6 +19,7 @@ import { EditorEventSource } from '@/Types/EditorEventSource' import QuickSettingsButton from './QuickSettingsButton' import AccountMenuButton from './AccountMenuButton' import StyledTooltip from '../StyledTooltip/StyledTooltip' +import UpgradeNow from './UpgradeNow' type Props = { application: WebApplication @@ -382,6 +383,10 @@ class Footer extends PureComponent { quickSettingsMenuController={this.viewControllerManager.quickSettingsMenuController} /> + {this.state.showBetaWarning && (
diff --git a/packages/web/src/javascripts/Components/Footer/UpgradeNow.tsx b/packages/web/src/javascripts/Components/Footer/UpgradeNow.tsx new file mode 100644 index 000000000..12fde3e9b --- /dev/null +++ b/packages/web/src/javascripts/Components/Footer/UpgradeNow.tsx @@ -0,0 +1,46 @@ +import { WebApplication } from '@/Application/Application' +import { FeaturesController } from '@/Controllers/FeaturesController' +import { observer } from 'mobx-react-lite' +import { loadPurchaseFlowUrl } from '../PurchaseFlow/PurchaseFlowFunctions' + +type Props = { + application: WebApplication + featuresController: FeaturesController +} + +const UpgradeNow = ({ application, featuresController }: Props) => { + const shouldShowCTA = !featuresController.hasFolders + const hasAccount = application.hasAccount() + + const openPlansPage = () => { + if (!window.plansUrl) { + return + } + + if (application.isNativeMobileWeb()) { + application.mobileDevice.openUrl(window.plansUrl) + } else { + window.location.assign(window.plansUrl) + } + } + + return shouldShowCTA ? ( +
+ +
+ ) : null +} + +export default observer(UpgradeNow) diff --git a/packages/web/src/javascripts/Components/Navigation/Navigation.tsx b/packages/web/src/javascripts/Components/Navigation/Navigation.tsx index 3b03529a9..eeee31347 100644 --- a/packages/web/src/javascripts/Components/Navigation/Navigation.tsx +++ b/packages/web/src/javascripts/Components/Navigation/Navigation.tsx @@ -12,6 +12,7 @@ import { classNames } from '@/Utils/ConcatenateClassNames' import Icon from '../Icon/Icon' import { useResponsiveAppPane } from '../ResponsivePane/ResponsivePaneProvider' import { isIOS } from '@/Utils' +import UpgradeNow from '../Footer/UpgradeNow' type Props = { application: WebApplication @@ -86,7 +87,7 @@ const Navigation: FunctionComponent = ({ application }) => {
+