- web/src/pages/Pricing.tsx: tier comparison, monthly/yearly toggle, stripe checkout CTA - web/src/pages/Settings.tsx: Plan section shows Free/Pro + Upgrade or Manage Subscription (opens Stripe Customer Portal) - web/src/lib/api.ts: startCheckout(), openBillingPortal() + extended ApiUser - footer on Home gets a discreet "Pricing →" link - k8s/secrets.example.yml: documents STRIPE_* env vars - .gitignore: exclude .env files to prevent leaking credentials Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
23 lines
750 B
TypeScript
23 lines
750 B
TypeScript
import { Routes, Route } from "react-router-dom";
|
|
import Home from "./pages/Home";
|
|
import JoinRoom from "./pages/JoinRoom";
|
|
import Share from "./pages/Share";
|
|
import Settings from "./pages/Settings";
|
|
import Pricing from "./pages/Pricing";
|
|
import Receive from "./pages/Receive";
|
|
import Inbox from "./pages/Inbox";
|
|
|
|
export default function App() {
|
|
return (
|
|
<Routes>
|
|
<Route path="/" element={<Home />} />
|
|
<Route path="/share" element={<Share />} />
|
|
<Route path="/settings" element={<Settings />} />
|
|
<Route path="/pricing" element={<Pricing />} />
|
|
<Route path="/inbox" element={<Inbox />} />
|
|
<Route path="/r/:id" element={<Receive />} />
|
|
<Route path="/:code" element={<JoinRoom />} />
|
|
</Routes>
|
|
);
|
|
}
|