"use client";
import { Skeleton } from "@/components/ui/skeleton";
import dynamic from "next/dynamic";
import type { PublicGuide } from "@/lib/guides/queries";
import { createContext, useContext, useState, type ReactNode } from "react";
import { ToggleGroup, ToggleGroupItem } from "@/components/ui/toggle-group";
const LazyWeaponChart = dynamic(() => import("./weapon-chart").then((module) => module.WeaponChart), {
loading: () => ,
});
const WeaponModeContext = createContext<{
mode: string;
setMode: (mode: string) => void;
} | null>(null);
export function WeaponDisplayModeProvider({ children }: { children: ReactNode }) {
const [mode, setMode] = useState("normal");
return (
{children}
);
}
export function WeaponDisplayMode({
children,
rows,
exporting = false,
}: {
children: ReactNode;
rows: PublicGuide["weaponGroups"][number]["rows"];
exporting?: boolean;
}) {
const context = useContext(WeaponModeContext);
if (!context) throw new Error("WeaponDisplayMode requires WeaponDisplayModeProvider");
const { mode, setMode } = context;
if (exporting) return children;
return (
{
if (values[0]) setMode(values[0]);
}}
>
รายการ
กราฟ
{mode === "chart" ? : children}
);
}