import { FunctionalComponent } from "preact"; import { Text } from '@/preferences/components'; import { Button } from '@/components/Button'; import { WebApplication } from "@/ui_models/application"; import { useState } from "preact/hooks"; import { isDesktopApplication } from "@/utils"; export const NoSubscription: FunctionalComponent<{ application: WebApplication; }> = ({ application }) => { const [isLoadingPurchaseFlow, setIsLoadingPurchaseFlow] = useState(false); const [purchaseFlowError, setPurchaseFlowError] = useState(undefined); const onPurchaseClick = async () => { const errorMessage = 'There was an error when attempting to redirect you to the subscription page.'; setIsLoadingPurchaseFlow(true); try { const url = await application.getPurchaseFlowUrl(); if (url) { const currentUrl = window.location.href; const successUrl = isDesktopApplication() ? `standardnotes://${currentUrl}` : currentUrl; console.log(successUrl); window.location.assign(`${url}&success_url=${successUrl}`); } else { setPurchaseFlowError(errorMessage); } } catch (e) { setPurchaseFlowError(errorMessage); } finally { setIsLoadingPurchaseFlow(false); } }; return ( <> You don't have a Standard Notes subscription yet. {isLoadingPurchaseFlow && ( Redirecting you to the subscription page... )} {purchaseFlowError && ( {purchaseFlowError} )}
); };