import { useState } from "react"; import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; import { Card, CardContent } from "@/components/ui/card"; import { Dialog, DialogContent, DialogHeader, DialogTitle } from "@/components/ui/dialog"; import { useToast } from "@/hooks/use-toast"; import { apiRequest } from "@/lib/queryClient"; import { useMutation } from "@tanstack/react-query"; export default function Landing() { const [showLoginModal, setShowLoginModal] = useState(false); const [showRequestModal, setShowRequestModal] = useState(false); const [requestForm, setRequestForm] = useState({ name: "", category: "people", description: "" }); const { toast } = useToast(); const requestMutation = useMutation({ mutationFn: async (data: typeof requestForm) => { await apiRequest("POST", "/api/media-outlet-requests", data); }, onSuccess: () => { toast({ title: "Success", description: "Your media outlet request has been submitted for review.", }); setShowRequestModal(false); setRequestForm({ name: "", category: "people", description: "" }); }, onError: () => { toast({ title: "Error", description: "Failed to submit request. Please try again.", variant: "destructive" }); } }); const handleLogin = () => { window.location.href = "/api/login"; }; const handleRequestSubmit = (e: React.FormEvent) => { e.preventDefault(); requestMutation.mutate(requestForm); }; return (
{/* Header */}
S
SAPIENS
{/* Hero Section */}

Media Intelligence & Prediction Markets

Access premium media outlets across People, Topics, and Companies. Participate in prediction markets and bid for exclusive editorial rights.

{/* Features Section */}

Comprehensive Media Platform

Discover insights across three key categories

People

Follow insights from influential leaders across technology, finance, and politics.

24 Influential Figures

Topics

Stay updated on trending subjects from crypto to AI, regulation to innovation.

20 Key Topics

Companies

Track major corporations shaping the future of technology and finance.

27 Leading Companies

{/* Request Modal */} Request New Media Outlet
setRequestForm(prev => ({ ...prev, name: e.target.value }))} placeholder="Enter outlet name" required data-testid="input-outlet-name" />