"use client"; import { Server } from "revolt-api"; import { Button, buttonVariants } from "../../ui/button"; import { Command, CommandItem, } from "@/components/ui/command"; import { Popover, PopoverContent, PopoverTrigger, } from "@/components/ui/popover"; import { Check, ChevronsUpDown } from "lucide-react"; import { cn } from "@/lib/utils"; import { useState } from "react"; import { updateServerDiscoverability, updateServerFlags } from "@/lib/actions"; import { useToast } from "../../ui/use-toast"; import Link from "next/link"; export function ServerActions({ server }: { server: Server }) { const [selectBadges, setSelectBadges] = useState(false); const [serverDraft, setDraft] = useState(server); const { toast } = useToast(); return (
{serverDraft.discoverable ? ( ) : ( )} {[ { value: 0, label: "No Badge" }, { value: 1, label: "Official" }, { value: 2, label: "Verified" }, ].map((flag) => ( { setSelectBadges(false); try { await updateServerFlags(server._id, flag.value); setDraft((server) => ({ ...server, flags: flag.value })); toast({ title: "Updated server flags", }); } catch (err) { toast({ title: "Failed to update server flags", description: String(err), variant: "destructive", }); } }} > {flag.label} ))} Invites
); }