"use client"; import { useState } from "react"; import { Button } from "@/components/ui/button"; import { Lock, UserPlus, X, ShieldCheck } from "lucide-react"; import { AuthModal } from "@/components/AuthModal"; interface GuestUpgradeBannerProps { reason?: "explicit" | "chat" | "media" | "general"; compact?: boolean; onDismiss?: () => void; } const MESSAGES = { explicit: { title: "Explicit photos are for members", body: "You verified your age — great. Create a free account to unlock x-rated photos, or complete ID verification in restricted states.", }, chat: { title: "Sign up free to chat", body: "Guests can browse the map and profiles. Join free to message cruisers, save quick replies, and upload photos.", }, media: { title: "Media gallery locked", body: "Register free to view full photo grids and share your own pics (up to 15).", }, general: { title: "Limited guest access", body: "Age verified — no ID required to browse. Sign up free for chat, photos, and explicit content (ID may be required in your state).", }, }; export function GuestUpgradeBanner({ reason = "general", compact, onDismiss, }: GuestUpgradeBannerProps) { const [authOpen, setAuthOpen] = useState(false); const msg = MESSAGES[reason]; if (compact) { return ( <> setAuthOpen(false)} /> ); } return ( <>
{onDismiss && ( )}

{msg.title}

{msg.body}

setAuthOpen(false)} /> ); }