Cleanup the pages
This commit is contained in:
parent
aa5422db6c
commit
7a729183e2
|
@ -1,9 +1,9 @@
|
||||||
import { Container } from "components/Container";
|
import { Container } from "components/Container";
|
||||||
import { Spinner } from "components/Spinner";
|
import { Spinner } from "components/Spinner";
|
||||||
import * as React from "react";
|
import React, { useEffect } from "react";
|
||||||
|
|
||||||
export default function DesktopRedirect() {
|
const Page: React.FC = () => {
|
||||||
React.useEffect(() => {
|
useEffect(() => {
|
||||||
const currentURL = new URL(window.location.href);
|
const currentURL = new URL(window.location.href);
|
||||||
const desktopRedirectURL = new URL("ente://app/gallery");
|
const desktopRedirectURL = new URL("ente://app/gallery");
|
||||||
desktopRedirectURL.search = currentURL.search;
|
desktopRedirectURL.search = currentURL.search;
|
||||||
|
@ -15,4 +15,6 @@ export default function DesktopRedirect() {
|
||||||
<Spinner />
|
<Spinner />
|
||||||
</Container>
|
</Container>
|
||||||
);
|
);
|
||||||
}
|
};
|
||||||
|
|
||||||
|
export default Page;
|
||||||
|
|
|
@ -1,24 +1,19 @@
|
||||||
import { Container } from "components/Container";
|
import { Container } from "components/Container";
|
||||||
import { Spinner } from "components/Spinner";
|
import { Spinner } from "components/Spinner";
|
||||||
import * as React from "react";
|
import React, { useEffect } from "react";
|
||||||
import { parseAndHandleRequest } from "services/billing-service";
|
import { parseAndHandleRequest } from "services/billing-service";
|
||||||
import S from "utils/strings";
|
import S from "utils/strings";
|
||||||
|
|
||||||
export default function Home() {
|
const Page: React.FC = () => {
|
||||||
const [failed, setFailed] = React.useState(false);
|
const [failed, setFailed] = React.useState(false);
|
||||||
|
|
||||||
React.useEffect(() => {
|
useEffect(() => {
|
||||||
async function main() {
|
parseAndHandleRequest().catch(() => {
|
||||||
try {
|
setFailed(true);
|
||||||
await parseAndHandleRequest();
|
});
|
||||||
} catch {
|
|
||||||
setFailed(true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// TODO: audit
|
|
||||||
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
|
||||||
main();
|
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
return <Container>{failed ? S.error_generic : <Spinner />}</Container>;
|
return <Container>{failed ? S.error_generic : <Spinner />}</Container>;
|
||||||
}
|
};
|
||||||
|
|
||||||
|
export default Page;
|
||||||
|
|
|
@ -1,11 +1,4 @@
|
||||||
// TODO: Audit this and other eslints
|
|
||||||
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
||||||
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
|
|
||||||
/* eslint-disable @typescript-eslint/no-confusing-void-expression */
|
/* eslint-disable @typescript-eslint/no-confusing-void-expression */
|
||||||
/* eslint-disable @typescript-eslint/no-unsafe-return */
|
|
||||||
/* eslint-disable @typescript-eslint/no-unsafe-enum-comparison */
|
|
||||||
/* eslint-disable @typescript-eslint/no-unnecessary-condition */
|
|
||||||
|
|
||||||
import { loadStripe } from "@stripe/stripe-js";
|
import { loadStripe } from "@stripe/stripe-js";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -180,11 +173,11 @@ const createCheckoutSession = async (
|
||||||
throw new Error(`Unexpected response for ${url}: ${JSON.stringify(json)}`);
|
throw new Error(`Unexpected response for ${url}: ${JSON.stringify(json)}`);
|
||||||
};
|
};
|
||||||
|
|
||||||
export async function updateSubscription(
|
const updateSubscription = async (
|
||||||
productID: string,
|
productID: string,
|
||||||
paymentToken: string,
|
paymentToken: string,
|
||||||
redirectURL: string,
|
redirectURL: string,
|
||||||
) {
|
) => {
|
||||||
try {
|
try {
|
||||||
const accountCountry = await getUserStripeAccountCountry(paymentToken);
|
const accountCountry = await getUserStripeAccountCountry(paymentToken);
|
||||||
const stripe = await getStripe(redirectURL, accountCountry);
|
const stripe = await getStripe(redirectURL, accountCountry);
|
||||||
|
@ -193,16 +186,18 @@ export async function updateSubscription(
|
||||||
productID,
|
productID,
|
||||||
);
|
);
|
||||||
switch (status) {
|
switch (status) {
|
||||||
case "success":
|
case "success": {
|
||||||
// Subscription was updated successfully, nothing more required
|
// Subscription was updated successfully, nothing more required
|
||||||
return redirectToApp(redirectURL, "success");
|
return redirectToApp(redirectURL, "success");
|
||||||
|
}
|
||||||
|
|
||||||
case "requires_payment_method":
|
case "requires_payment_method": {
|
||||||
return redirectToApp(
|
return redirectToApp(
|
||||||
redirectURL,
|
redirectURL,
|
||||||
"fail",
|
"fail",
|
||||||
"requires_payment_method",
|
"requires_payment_method",
|
||||||
);
|
);
|
||||||
|
}
|
||||||
|
|
||||||
case "requires_action": {
|
case "requires_action": {
|
||||||
const { error } = await stripe.confirmCardPayment(clientSecret);
|
const { error } = await stripe.confirmCardPayment(clientSecret);
|
||||||
|
@ -236,7 +231,7 @@ export async function updateSubscription(
|
||||||
redirectToApp(redirectURL, "fail", "server_error");
|
redirectToApp(redirectURL, "fail", "server_error");
|
||||||
throw e;
|
throw e;
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
|
|
||||||
type PaymentStatus = "success" | "requires_action" | "requires_payment_method";
|
type PaymentStatus = "success" | "requires_action" | "requires_payment_method";
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,7 @@ body {
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
min-width: 80svh;
|
min-height: 100svh;
|
||||||
}
|
}
|
||||||
|
|
||||||
.loading-spinner {
|
.loading-spinner {
|
||||||
|
|
Loading…
Reference in a new issue