"use client"; import axios from "axios"; import { useState } from "react"; import { Check, Copy, RefreshCw } from "lucide-react"; import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle, } from "@/components/ui/dialog"; import { useModal } from "@/hooks/use-modal-store"; import { Label } from "@/components/ui/label"; import { Input } from "@/components/ui/input"; import { Button } from "@/components/ui/button"; import { useOrigin } from "@/hooks/user-origin"; export const InviteModal = () => { const { onOpen, isOpen, onClose, type, data } = useModal(); const origin = useOrigin(); const isModalOpen = isOpen && type === "invite"; const { server } = data; const [copied, setCopied] = useState(false); const [isLoading, setIsLoading] = useState(false); const inviteUrl = `${origin}/invite/${server?.inviteCode}`; const onCopy = () => { navigator.clipboard.writeText(inviteUrl); setCopied(true); setTimeout(() => { setCopied(false); }, 1000); } const onNew = async () => { try { setIsLoading(true); const response = await axios.patch(`/api/servers/${server?.id}/invite-code`); onOpen("invite", {server: response.data}); } catch (error) { console.log(error); } finally{ setIsLoading(false); } } return ( Invite Friends
) }