"use client"; import { useMemo, useState } from "react"; import { ImportIcon } from "lucide-react"; import { Alert, AlertDescription, AlertTitle } from "@/components/ui/alert"; import { Button } from "@/components/ui/button"; import { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger } from "@/components/ui/dialog"; import { Field, FieldDescription, FieldError, FieldGroup, FieldLabel } from "@/components/ui/field"; import { Input } from "@/components/ui/input"; import { Textarea } from "@/components/ui/textarea"; import { importGcsimConfig } from "@/lib/translator/import"; import type { Catalog, Team } from "@/lib/translator/types"; export function ImportGcsimDialog({ catalog, disabled, onImport }: { catalog: Catalog; disabled: boolean; onImport: (team: Team) => void }) { const [open, setOpen] = useState(false); const [input, setInput] = useState(""); const [name, setName] = useState("Imported team"); const preview = useMemo(() => input.trim() ? importGcsimConfig(input, catalog, name) : undefined, [input, catalog, name]); const lineNumbers = useMemo(() => Array.from({ length: input.split("\n").length }, (_, index) => `${index + 1} |`).join("\n"), [input]); const error = preview?.error; return }>Import from gcsim Import from gcsimPaste character settings, artifact stats, and rotation script. Import creates a new team. Team name setName(event.target.value)} /> Gcsim config