import Dialog from "@mui/material/Dialog"; import DialogTitle from "@mui/material/DialogTitle"; import DialogContent from "@mui/material/DialogContent"; import DialogActions from "@mui/material/DialogActions"; import Button from "@mui/material/Button"; import Typography from "@mui/material/Typography"; import Stack from "@mui/material/Stack"; import Table from "@mui/material/Table"; import TableBody from "@mui/material/TableBody"; import TableCell from "@mui/material/TableCell"; import TableRow from "@mui/material/TableRow"; import type { RecipeDetail } from "../types"; interface Props { open: boolean; recipe: RecipeDetail | null; onClose: () => void; } export default function RecipeDetailDialog({ open, recipe, onClose }: Props) { if (!recipe) return null; return ( {recipe.name} Level {recipe.level} – {recipe.category} – {recipe.crystal} Crystal {recipe.key_item && ( Key Item: {recipe.key_item} )} {recipe.subcrafts.length > 0 && ( Subcrafts: {recipe.subcrafts .map(([c, lvl]: [string, number]) => `${c} (${lvl})`) .join(", ")} )} Ingredients {recipe.ingredients.map(([name, qty]: [string, number]) => ( {name} {qty} ))}
HQ Yields {recipe.hq_yields.map((hq: [string, number] | null, idx: number) => ( HQ{idx + 1} {hq ? `${hq[0]} x${hq[1]}` : "—"} ))}
); }