diff --git a/frontend/src/components/PicoBadge.tsx b/frontend/src/components/PicoBadge.tsx index f5d173d..a43f392 100644 --- a/frontend/src/components/PicoBadge.tsx +++ b/frontend/src/components/PicoBadge.tsx @@ -1,4 +1,4 @@ -import PricingDialog from "./payments/PricingDialog"; +import PricingDialog from "./hosted/payments/PricingDialog"; export function PicoBadge() { return ( diff --git a/frontend/src/components/hosted/PricingPage.tsx b/frontend/src/components/hosted/PricingPage.tsx new file mode 100644 index 0000000..d1411ab --- /dev/null +++ b/frontend/src/components/hosted/PricingPage.tsx @@ -0,0 +1,55 @@ +import React from "react"; +import Footer from "./LandingPage/Footer"; + +const PricingPage: React.FC = () => { + return ( +
+

Pricing

+
+ {/* Basic Plan */} +
+

Basic

+

$9.99/mo

+
    +
  • Feature 1
  • +
  • Feature 2
  • +
  • Feature 3
  • +
+ +
+ {/* Pro Plan */} +
+

Pro

+

$19.99/mo

+
    +
  • All Basic features
  • +
  • Feature 4
  • +
  • Feature 5
  • +
+ +
+ {/* Enterprise Plan */} +
+

Enterprise

+

Custom

+
    +
  • All Pro features
  • +
  • Custom integrations
  • +
  • Dedicated support
  • +
+ +
+
+ +
+ ); +}; + +export default PricingPage; diff --git a/frontend/src/components/payments/PricingDialog.tsx b/frontend/src/components/hosted/payments/PricingDialog.tsx similarity index 98% rename from frontend/src/components/payments/PricingDialog.tsx rename to frontend/src/components/hosted/payments/PricingDialog.tsx index c03034a..126df86 100644 --- a/frontend/src/components/payments/PricingDialog.tsx +++ b/frontend/src/components/hosted/payments/PricingDialog.tsx @@ -6,12 +6,12 @@ import { DialogHeader, DialogTitle, DialogTrigger, -} from "../ui/dialog"; +} from "../../ui/dialog"; import { FaCheckCircle } from "react-icons/fa"; -import Spinner from "../custom-ui/Spinner"; +import Spinner from "../../custom-ui/Spinner"; import useStripeCheckout from "./useStripeCheckout"; -import { Button } from "../ui/button"; -import { useStore } from "../../store/store"; +import { Button } from "../../ui/button"; +import { useStore } from "../../../store/store"; const LOGOS = ["microsoft", "amazon", "mit", "stanford", "bytedance", "baidu"]; diff --git a/frontend/src/components/payments/useStripeCheckout.ts b/frontend/src/components/hosted/payments/useStripeCheckout.ts similarity index 93% rename from frontend/src/components/payments/useStripeCheckout.ts rename to frontend/src/components/hosted/payments/useStripeCheckout.ts index 52b72eb..277058d 100644 --- a/frontend/src/components/payments/useStripeCheckout.ts +++ b/frontend/src/components/hosted/payments/useStripeCheckout.ts @@ -1,9 +1,9 @@ import { useEffect, useState } from "react"; import toast from "react-hot-toast"; -import { SAAS_BACKEND_URL, STRIPE_PUBLISHABLE_KEY } from "../../config"; -import { addEvent } from "../../lib/analytics"; +import { SAAS_BACKEND_URL, STRIPE_PUBLISHABLE_KEY } from "../../../config"; +import { addEvent } from "../../../lib/analytics"; import { Stripe, loadStripe } from "@stripe/stripe-js"; -import { useAuthenticatedFetch } from "../hosted/useAuthenticatedFetch"; +import { useAuthenticatedFetch } from "../useAuthenticatedFetch"; interface CreateCheckoutSessionResponse { sessionId: string; diff --git a/frontend/src/main.tsx b/frontend/src/main.tsx index b9946d3..3e51f97 100644 --- a/frontend/src/main.tsx +++ b/frontend/src/main.tsx @@ -7,6 +7,7 @@ import EvalsPage from "./components/evals/EvalsPage.tsx"; import { BrowserRouter as Router, Routes, Route } from "react-router-dom"; import { CLERK_PUBLISHABLE_KEY } from "./config.ts"; import "./index.css"; +import PricingPage from "./components/hosted/PricingPage.tsx"; ReactDOM.createRoot(document.getElementById("root")!).render( @@ -21,6 +22,7 @@ ReactDOM.createRoot(document.getElementById("root")!).render( } /> } /> + } />