"use client"; import React, { useState, useRef, useEffect } from "react"; import Link from "next/link"; import { ChevronDown, Check } from "lucide-react"; import { Guild } from "@/lib/discord"; interface ServerSwitcherProps { currentGuild: Guild; guilds: Guild[]; } export default function ServerSwitcher({ currentGuild, guilds }: ServerSwitcherProps) { const [isOpen, setIsOpen] = useState(false); const dropdownRef = useRef(null); useEffect(() => { function handleClickOutside(event: MouseEvent) { if (dropdownRef.current && !dropdownRef.current.contains(event.target as Node)) { setIsOpen(false); } } document.addEventListener("mousedown", handleClickOutside); return () => document.removeEventListener("mousedown", handleClickOutside); }, []); return (
{isOpen && (

Switch Server

{guilds.map((guild) => ( setIsOpen(false)} className={`flex items-center gap-3 w-full p-2 rounded-lg hover:bg-white/5 transition-all ${guild.id === currentGuild.id ? "bg-blue-500/10" : ""}`} > {guild.icon ? ( {guild.name} ) : (
{guild.name.substring(0, 2)}
)} {guild.name} {guild.id === currentGuild.id && ( )} ))}
)}
); }