import React, { useState, useMemo } from 'react'; import { useInventoryStore } from '../store/inventoryStore'; import { formatItemName } from '../utils/itemUtils'; import ItemIcon from './ItemIcon'; import './SmeltingPanel.css'; function SmeltingPanel() { const inventory = useInventoryStore((state) => state.inventory); const smeltingPaused = useInventoryStore((state) => state.smeltingPaused); const disabledRecipes = useInventoryStore((state) => state.disabledRecipes); const smeltable = useInventoryStore((state) => state.smeltable); const toggleSmelting = useInventoryStore((state) => state.toggleSmelting); const toggleRecipe = useInventoryStore((state) => state.toggleRecipe); const enableAllRecipes = useInventoryStore((state) => state.enableAllRecipes); const disableAllRecipes = useInventoryStore((state) => state.disableAllRecipes); const [collapsedGroups, setCollapsedGroups] = useState({}); const furnaceStatus = inventory.furnaceStatus || {}; const furnaceEntries = Object.entries(furnaceStatus); const smeltableEntries = Object.entries(smeltable || {}); // Group recipes by output item const groupedRecipes = useMemo(() => { const groups = {}; for (const [input, recipe] of smeltableEntries) { const result = (recipe && recipe.result) || 'unknown'; if (!groups[result]) { groups[result] = []; } groups[result].push({ input, recipe }); } // Sort groups by output name return Object.entries(groups).sort(([a], [b]) => formatItemName(a).localeCompare(formatItemName(b)) ); }, [smeltableEntries]); const toggleGroup = (groupKey) => { setCollapsedGroups((prev) => ({ ...prev, [groupKey]: !prev[groupKey], })); }; return (