"use client"; import { Search, X } from "lucide-react"; import { usePathname, useRouter, useSearchParams } from "next/navigation"; import { Button } from "@/components/ui/button"; import { Field, FieldLabel } from "@/components/ui/field"; import { Input } from "@/components/ui/input"; import { Select, SelectContent, SelectGroup, SelectItem, SelectTrigger, SelectValue, } from "@/components/ui/select"; import { Tabs, TabsList, TabsTrigger } from "@/components/ui/tabs"; import type { DiscordVoiceChannel } from "@/lib/leaderboard/discord"; const ALL_CHANNELS = "all"; export function ChannelSelect({ channels, selectedChannelId, searchQuery, }: { channels: DiscordVoiceChannel[]; selectedChannelId?: string; searchQuery?: string; }) { const router = useRouter(); return ( ห้องเสียง ); } export function LeaderboardSearch({ query }: { query: string }) { const pathname = usePathname(); const router = useRouter(); const searchParams = useSearchParams(); function navigate(nextValue: string) { const params = new URLSearchParams(searchParams); const trimmed = nextValue.trim(); params.delete("page"); if (trimmed) { params.set("q", trimmed); } else { params.delete("q"); } const nextQuery = params.toString(); router.push(nextQuery ? `${pathname}?${nextQuery}` : pathname); } return (
{ event.preventDefault(); const formData = new FormData(event.currentTarget); navigate(String(formData.get("q") ?? "")); }} > ค้นหาสมาชิก
{query && ( )}
); } export function LeaderboardTabs({ active, searchQuery, }: { active: "xp" | "vc"; searchQuery: string; }) { const router = useRouter(); return ( { const params = new URLSearchParams(); if (searchQuery) params.set("q", searchQuery); const query = params.toString(); router.push(query ? `/leaderboard/${value}?${query}` : `/leaderboard/${value}`); }} > อันดับ XP เวลาในห้องเสียง ); }