Advertisement
Dodo67

Untitled

Mar 13th, 2022
143
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import React, { useEffect, useState } from "react";
  2. import { isAuth } from "../helpers/auth";
  3. import { useNavigate } from "react-router-dom";
  4. import styles from "./Pricing.module.scss";
  5. import ScriptTag from "react-script-tag";
  6. import { loadStripe } from '@stripe/stripe-js';
  7.  
  8. const PUBLISHABLE_KEY = 'HIDED'
  9.  
  10. export const Pricing = () => {
  11.   const [buttonValue, setButtonValue] = useState();
  12.  
  13.   const navigate = useNavigate();
  14.  
  15.   const handleClick = (e) => {
  16.     setButtonValue(e.target.value);
  17.     checkout();
  18.   };
  19.   const checkout = async() => {
  20.     const stripe = await loadStripe(PUBLISHABLE_KEY);  
  21.     console.log(buttonValue);
  22.     fetch("http://localhost:5000/api/checkout", {
  23.       method: "POST",
  24.       headers: {
  25.         "Content-Type": "application/json",
  26.       },
  27.       body: JSON.stringify({
  28.         buttonValue,
  29.       }),
  30.     })
  31.       .then((result) => result.json())
  32.       .then(({ sessionID }) => stripe.redirectToCheckout({ sessionID }));
  33.   };
  34.   return (
  35.     <div className={styles.container}>
  36.       {isAuth() ? null : navigate("/login")}
  37.       <ScriptTag
  38.         isHydrating={true}
  39.         type="text/javascript"
  40.         src="https://js.stripe.com/v3/"
  41.       />
  42.       <h2 className={styles.heading}>Choose</h2>
  43.       <div className={styles.priceRow}>
  44.         <div className={styles.priceCol}>
  45.           <p>Starter</p>
  46.           <h3>
  47.             50$ <span> / month</span>
  48.           </h3>
  49.           <ul>
  50.             <li>1 Website</li>
  51.             <li>10 GB Disk Space</li>
  52.             <li>Free Email Address</li>
  53.             <li>No SSL certificate</li>
  54.             <li>Limited Support</li>
  55.           </ul>
  56.           <form>
  57.             <button
  58.               value="HIDED"
  59.               type="submit"
  60.               className="btn"
  61.               name="product"
  62.               onClick={(e) => handleClick(e)}
  63.             >
  64.               Upgrade Now
  65.             </button>
  66.           </form>
  67.         </div>
  68.         <div className={styles.priceCol}>
  69.           <p>Advanced</p>
  70.           <h3>
  71.             100$ <span> / month</span>
  72.           </h3>
  73.           <ul>
  74.             <li>1 Website</li>
  75.             <li>10 GB Disk Space</li>
  76.             <li>Free Email Address</li>
  77.             <li>No SSL certificate</li>
  78.             <li>Limited Support</li>
  79.           </ul>
  80.           <form>
  81.             <button
  82.               value="HIDED"
  83.               type="submit"
  84.               className="btn"
  85.               name="product"
  86.               onClick={(e) => handleClick(e)}
  87.             >
  88.               Upgrade Now
  89.             </button>
  90.           </form>
  91.         </div>
  92.         <div className={styles.priceCol}>
  93.           <p>Premium</p>
  94.           <h3>
  95.             200$ <span> / month</span>
  96.           </h3>
  97.           <ul>
  98.             <li>1 Website</li>
  99.             <li>10 GB Disk Space</li>
  100.             <li>Free Email Address</li>
  101.             <li>No SSL certificate</li>
  102.             <li>Limited Support</li>
  103.           </ul>
  104.           <form>
  105.             <button
  106.               value="HIDED"
  107.               type="submit"
  108.               className="btn"
  109.               name="product"
  110.               onClick={(e) => handleClick(e)}
  111.             >
  112.               Upgrade Now
  113.             </button>
  114.           </form>
  115.         </div>
  116.       </div>
  117.     </div>
  118.   );
  119. };
  120.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement