"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 (
<>