Update pricing page + add pnpm

This commit is contained in:
Michael
2021-11-09 16:29:31 +01:00
parent 11188ea88a
commit d75eeeee2d
5 changed files with 5102 additions and 14326 deletions

View File

@@ -18,16 +18,6 @@ const Pricing = (): JSX.Element => {
const [customerId, setCustomerId] = useState(null); const [customerId, setCustomerId] = useState(null);
const [sub, setSub] = useState(false); const [sub, setSub] = useState(false);
const portal = () => {
axios
.post('/api/stripe/customer-portal', {
customerId,
})
.then((result) => {
router.push(result.data.url);
});
};
useEffect(() => { useEffect(() => {
if (user) { if (user) {
getSub().then((result) => setSub(result)); getSub().then((result) => setSub(result));
@@ -45,16 +35,25 @@ const Pricing = (): JSX.Element => {
const handleSubmit = async (e: React.SyntheticEvent<HTMLButtonElement>, priceId: string) => { const handleSubmit = async (e: React.SyntheticEvent<HTMLButtonElement>, priceId: string) => {
e.preventDefault(); e.preventDefault();
// Create a Checkout Session. This will redirect the user to the Stripe website for the payment. // Create a Checkout Session. This will redirect the user to the Stripe website for the payment.
axios if (sub) {
.post('/api/stripe/create-checkout-session', { axios
priceId, .post('/api/stripe/customer-portal', {
email: user.email, customerId,
customerId, })
userId: user.id, .then((result) => {
tokenId: session.access_token, router.push(result.data.url);
pay_mode: 'subscription', });
}) } else
.then((result) => router.push(result.data.url)); axios
.post('/api/stripe/create-checkout-session', {
priceId,
email: user.email,
customerId,
userId: user.id,
tokenId: session.access_token,
pay_mode: 'subscription',
})
.then((result) => router.push(result.data.url));
}; };
return ( return (
<div> <div>
@@ -104,7 +103,7 @@ const Pricing = (): JSX.Element => {
handleSubmit(e, 'price_1JtHhaDMjD0UnVmM5uCyyrWn'); handleSubmit(e, 'price_1JtHhaDMjD0UnVmM5uCyyrWn');
}} }}
> >
Subscribe {sub ? 'Handle subscription' : 'Subscribe'}
</button> </button>
) : ( ) : (
<button className="btn btn-primary" onClick={() => router.push('/login')}> <button className="btn btn-primary" onClick={() => router.push('/login')}>
@@ -131,7 +130,14 @@ const Pricing = (): JSX.Element => {
</ul> </ul>
{user ? ( {user ? (
<button className="btn btn-primary">Subscribe</button> <button
className="btn btn-primary"
onClick={(e) => {
handleSubmit(e, 'price_1JtHhaDMjD0UnVmM5uCyyrWn');
}}
>
{sub ? 'Handle subscription' : 'Subscribe'}
</button>
) : ( ) : (
<button className="btn btn-primary" onClick={() => router.push('/login')}> <button className="btn btn-primary" onClick={() => router.push('/login')}>
Log in Log in

14300
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -10,16 +10,16 @@
"test": "playwright test" "test": "playwright test"
}, },
"dependencies": { "dependencies": {
"@headlessui/react": "^1.4.1", "@headlessui/react": "^1.4.2",
"@sendgrid/mail": "^7.6.0", "@sendgrid/mail": "^7.6.0",
"@stripe/stripe-js": "^1.21.1", "@stripe/stripe-js": "^1.21.1",
"@supabase/supabase-js": "^1.25.2", "@supabase/supabase-js": "^1.27.0",
"@types/node": "^16.10.1", "@types/node": "^16.10.1",
"@types/react": "^17.0.24", "@types/react": "^17.0.24",
"@types/react-dom": "^17.0.9", "@types/react-dom": "^17.0.9",
"axios": "^0.24.0", "axios": "^0.24.0",
"cors": "^2.8.5", "cors": "^2.8.5",
"daisyui": "^1.16.1", "daisyui": "^1.16.2",
"express-rate-limit": "^5.5.1", "express-rate-limit": "^5.5.1",
"micro": "^9.3.4", "micro": "^9.3.4",
"next": ">=12.0.3", "next": ">=12.0.3",

5070
pnpm-lock.yaml generated Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long