"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]); }} > List Chart {mode === "chart" ? : children}
); }