🐛 fix issue with items menu

This commit is contained in:
Chase Manning 2023-11-29 13:27:45 +00:00
commit 079582a0bf

View file

@ -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)),
})
);
},