- Cache read-heavy public API routes via redisCache (leaderboard, values, shop, articles, photos, guilds, teams, staff, users, home, radio, badges) - Add single-flight and bounded-memory cache layer with unit tests - Parallelize independent DB queries on search, rares, shop, staff, polls and profile pages - Push radio points leaderboard aggregation to SQL with a LIMIT - Split studio-client and import-furni-client into focused modules - Clean up next.config.ts
23 lines
524 B
TypeScript
23 lines
524 B
TypeScript
"use client";
|
|
|
|
import { Check } from "lucide-react";
|
|
|
|
import { cn } from "@/lib/utils";
|
|
|
|
export function CheckboxDot({ checked }: { checked: boolean }) {
|
|
return (
|
|
<span
|
|
className={cn(
|
|
"grid h-3.5 w-3.5 place-items-center rounded border transition-colors",
|
|
checked
|
|
? "border-[var(--admin-accent)] bg-[var(--admin-accent)]"
|
|
: "border-[var(--admin-border)] bg-transparent",
|
|
)}
|
|
>
|
|
{checked ? (
|
|
<Check size={10} className="text-[var(--admin-accent-foreground)]" />
|
|
) : null}
|
|
</span>
|
|
);
|
|
}
|