import { Server } from '@/types/server'; import { ClipboardCheckIcon, CloudIcon, LoaderCircleIcon, MapPinIcon, MousePointerClickIcon, SlashIcon } from 'lucide-react'; import { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip'; import ServerActions from '@/pages/servers/components/actions'; import { cn } from '@/lib/utils'; import { Site } from '@/types/site'; import { StatusRipple } from '@/components/status-ripple'; import { Badge } from '@/components/ui/badge'; import { useForm } from '@inertiajs/react'; import { useState } from 'react'; export default function ServerHeader({ server, site }: { server: Server; site?: Site }) { const statusForm = useForm(); const checkStatus = () => { if (['installing', 'installation_failed'].includes(server.status)) { return; } statusForm.patch(route('servers.status', { server: server.id })); }; const [ipCopied, setIpCopied] = useState(false); const copyIp = (ip: string) => { navigator.clipboard.writeText(ip).then(() => { setIpCopied(true); setTimeout(() => { setIpCopied(false); }, 2000); }); }; return (