mirror of
https://github.com/chase-manning/pokemon-js.git
synced 2025-08-26 03:07:14 +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,
|
selectPokemonEncounter,
|
||||||
} from "../state/gameSlice";
|
} from "../state/gameSlice";
|
||||||
import { useState } from "react";
|
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";
|
import { InventoryItemType } from "../state/state-types";
|
||||||
|
|
||||||
const ItemsMenu = () => {
|
const ItemsMenu = () => {
|
||||||
|
@ -30,14 +30,12 @@ const ItemsMenu = () => {
|
||||||
const learningMove = !!useSelector(selectLearningMove);
|
const learningMove = !!useSelector(selectLearningMove);
|
||||||
const tossing = !!useSelector(selectConfirmationMenu);
|
const tossing = !!useSelector(selectConfirmationMenu);
|
||||||
|
|
||||||
const [selected, setSelected] = useState<number | null>(null);
|
const [selected, setSelected] = useState<ItemData | null>(null);
|
||||||
|
|
||||||
const item = selected !== null ? itemData[inventory[selected].item] : null;
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<Menu
|
<Menu
|
||||||
disabled={selected !== null || usingItem || learningMove}
|
disabled={!!selected || usingItem || learningMove}
|
||||||
show={show}
|
show={show}
|
||||||
close={() => dispatch(hideItemsMenu())}
|
close={() => dispatch(hideItemsMenu())}
|
||||||
menuItems={inventory
|
menuItems={inventory
|
||||||
|
@ -49,14 +47,14 @@ const ItemsMenu = () => {
|
||||||
return {
|
return {
|
||||||
label: itemData[item.item].name,
|
label: itemData[item.item].name,
|
||||||
value: item.amount,
|
value: item.amount,
|
||||||
action: () => setSelected(index),
|
action: () => setSelected(itemData[item.item]),
|
||||||
};
|
};
|
||||||
})}
|
})}
|
||||||
/>
|
/>
|
||||||
{item && selected !== null && (
|
{selected && (
|
||||||
<Menu
|
<Menu
|
||||||
disabled={tossing || usingItem}
|
disabled={tossing || usingItem}
|
||||||
show={selected !== null}
|
show={!!selected}
|
||||||
close={() => setSelected(null)}
|
close={() => setSelected(null)}
|
||||||
menuItems={[
|
menuItems={[
|
||||||
{
|
{
|
||||||
|
@ -64,9 +62,9 @@ const ItemsMenu = () => {
|
||||||
action: () => {
|
action: () => {
|
||||||
// Can't use
|
// Can't use
|
||||||
if (
|
if (
|
||||||
(inBattle && !item.usableInBattle) ||
|
(inBattle && !selected.usableInBattle) ||
|
||||||
!item.consumable ||
|
!selected.consumable ||
|
||||||
(item.pokeball && !inBattle)
|
(selected.pokeball && !inBattle)
|
||||||
) {
|
) {
|
||||||
dispatch(
|
dispatch(
|
||||||
showText([
|
showText([
|
||||||
|
@ -78,7 +76,7 @@ const ItemsMenu = () => {
|
||||||
|
|
||||||
// Can use
|
// Can use
|
||||||
else {
|
else {
|
||||||
item.action();
|
selected.action();
|
||||||
setSelected(null);
|
setSelected(null);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -88,10 +86,9 @@ const ItemsMenu = () => {
|
||||||
action: () => {
|
action: () => {
|
||||||
dispatch(
|
dispatch(
|
||||||
showConfirmationMenu({
|
showConfirmationMenu({
|
||||||
preMessage: `Is it OK to toss ${inventory[selected].item}`,
|
preMessage: `Is it OK to toss ${selected.name}`,
|
||||||
postMessage: `${name} tossed ${inventory[selected].item}`,
|
postMessage: `${name} tossed ${selected.name}`,
|
||||||
confirm: () =>
|
confirm: () => dispatch(consumeItem(selected.type)),
|
||||||
dispatch(consumeItem(inventory[selected].item)),
|
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue