"use client";
import { useEffect, useState } from "react";
import { useLocalStorage } from "react-use";
import Image from "next/image";
import { Button } from "@/components/ui/button";
import { Dialog, DialogContent, DialogTitle } from "@/components/ui/dialog";
import { DiscordIcon } from "@/components/icons/discord";
import Logo from "@/assets/logo.svg";
const DISCORD_PROMO_KEY = "discord-promo-dismissed";
const DISCORD_URL = "https://discord.gg/KpanwM3vXa";
const Sparkle = ({
size = "w-3 h-3",
delay = "0s",
top = "20%",
left = "20%",
}: {
size?: string;
delay?: string;
top?: string;
left?: string;
}) => (
);
export const DiscordPromoModal = () => {
const [open, setOpen] = useState(false);
const [dismissed, setDismissed] = useLocalStorage(
DISCORD_PROMO_KEY,
false
);
useEffect(() => {
const cookieDismissed = document.cookie
.split("; ")
.find((row) => row.startsWith(`${DISCORD_PROMO_KEY}=`))
?.split("=")[1];
if (dismissed || cookieDismissed === "true") {
return;
}
const timer = setTimeout(() => {
setOpen(true);
}, 60000);
return () => clearTimeout(timer);
}, [dismissed]);
const handleClose = () => {
setOpen(false);
setDismissed(true);
const expiryDate = new Date();
expiryDate.setDate(expiryDate.getDate() + 5);
document.cookie = `${DISCORD_PROMO_KEY}=true; expires=${expiryDate.toUTCString()}; path=/; SameSite=Lax`;
};
const handleJoinDiscord = () => {
window.open(DISCORD_URL, "_blank");
handleClose();
};
return (
);
};