"use client"; import { useEffect, useState } from "react"; import { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, } from "@/components/ui/card"; import { RadioGroup, RadioGroupItem } from "@/components/ui/radio-group"; import { Label } from "@/components/ui/label"; import { Checkbox } from "@/components/ui/checkbox"; import { Button } from "@/components/ui/button"; import { Switch } from "./ui/switch"; import { setAccountSL } from "@/lib/api"; import toast from "react-hot-toast"; import { useUser } from "@clerk/nextjs"; export function SLCustomize() { const [padding, setPadding] = useState("0"); const [itemsPerRow, setItemsPerRow] = useState("4"); const [usePaddingOnSides, setUsePaddingOnSides] = useState(false); const [advanced, setAdvanced] = useState(false); const { user } = useUser(); useEffect(() => { setItemsPerRow((user?.publicMetadata.ipr as string | undefined) || "4"); setPadding((user?.publicMetadata.pad as string | undefined) || "0"); setUsePaddingOnSides( (user?.publicMetadata.srv as boolean | undefined) || false ); }, [ user?.publicMetadata.srv, user?.publicMetadata.pad, user?.publicMetadata.ipr, ]); const handleSubmit = (e: React.FormEvent) => { e.preventDefault(); if (padding) setAccountSL(Number(padding), "pad"); if (usePaddingOnSides) setAccountSL(usePaddingOnSides, "srv"); if (itemsPerRow) setAccountSL(Number(itemsPerRow), "ipr"); toast.success("Set account preferences"); }; return (
Server Display Settings Customize how servers are displayed in the list

Padding of servers

Adjust the spacing between server items in the list.

Standard spacing, balanced appearance.

More spacious, easier to distinguish between servers.

Better for larger screens, can look more stylish.

When information needs to be crunched in-between, recommended for larger screens only.

Items per row

Set how many server items appear in each row of the list.

Balanced size and quantity, suitable for most screens.

More compact view, fit more servers on screen.

Great for monitors/screens with more space.

setUsePaddingOnSides(checked as boolean) } />

When enabled, applies padding to individual server items instead of the entire list container. This can create a more distinct separation between servers.

); }