diff --git a/src/components/ItemsMenu.tsx b/src/components/ItemsMenu.tsx index 17fcbfb..effbc54 100644 --- a/src/components/ItemsMenu.tsx +++ b/src/components/ItemsMenu.tsx @@ -16,7 +16,7 @@ import { selectPokemonEncounter, } from "../state/gameSlice"; import { useState } from "react"; -import useItemData from "../app/use-item-data"; +import useItemData, { ItemData } from "../app/use-item-data"; import { InventoryItemType } from "../state/state-types"; const ItemsMenu = () => { @@ -30,14 +30,12 @@ const ItemsMenu = () => { const learningMove = !!useSelector(selectLearningMove); const tossing = !!useSelector(selectConfirmationMenu); - const [selected, setSelected] = useState<number | null>(null); - - const item = selected !== null ? itemData[inventory[selected].item] : null; + const [selected, setSelected] = useState<ItemData | null>(null); return ( <> <Menu - disabled={selected !== null || usingItem || learningMove} + disabled={!!selected || usingItem || learningMove} show={show} close={() => dispatch(hideItemsMenu())} menuItems={inventory @@ -49,14 +47,14 @@ const ItemsMenu = () => { return { label: itemData[item.item].name, value: item.amount, - action: () => setSelected(index), + action: () => setSelected(itemData[item.item]), }; })} /> - {item && selected !== null && ( + {selected && ( <Menu disabled={tossing || usingItem} - show={selected !== null} + show={!!selected} close={() => setSelected(null)} menuItems={[ { @@ -64,9 +62,9 @@ const ItemsMenu = () => { action: () => { // Can't use if ( - (inBattle && !item.usableInBattle) || - !item.consumable || - (item.pokeball && !inBattle) + (inBattle && !selected.usableInBattle) || + !selected.consumable || + (selected.pokeball && !inBattle) ) { dispatch( showText([ @@ -78,7 +76,7 @@ const ItemsMenu = () => { // Can use else { - item.action(); + selected.action(); setSelected(null); } }, @@ -88,10 +86,9 @@ const ItemsMenu = () => { action: () => { dispatch( showConfirmationMenu({ - preMessage: `Is it OK to toss ${inventory[selected].item}`, - postMessage: `${name} tossed ${inventory[selected].item}`, - confirm: () => - dispatch(consumeItem(inventory[selected].item)), + preMessage: `Is it OK to toss ${selected.name}`, + postMessage: `${name} tossed ${selected.name}`, + confirm: () => dispatch(consumeItem(selected.type)), }) ); },