mirror of
https://github.com/chase-manning/pokemon-js.git
synced 2025-08-05 02:19:13 +00:00
🐛 fix issue with items menu
This commit is contained in:
parent
c5b1fdbe0e
commit
079582a0bf
1 changed files with 13 additions and 16 deletions
|
@ -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)),
|
||||
})
|
||||
);
|
||||
},
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue