]> git.localhorst.tv Git - alttp.git/blobdiff - resources/js/components/tracker/ToggleIcon.js
clean up manual tracking
[alttp.git] / resources / js / components / tracker / ToggleIcon.js
index 3f6af9641c0926acb2bf31b1cd8618e74ffe5c3d..f7cc0744b81f22619634fecfc047cf66451b098a 100644 (file)
@@ -3,14 +3,18 @@ import React from 'react';
 
 import ZeldaIcon from '../common/ZeldaIcon';
 import {
+       addDungeonCheck,
        decrement,
        getDungeonBoss,
+       getDungeonRemainingItems,
        getDungeonPrize,
        hasDungeonBoss,
        hasDungeonPrize,
        highestActive,
        increment,
+       removeDungeonCheck,
        toggleBoolean,
+       toggleBossDefeated,
 } from '../../helpers/tracker';
 import { useTracker } from '../../hooks/tracker';
 
@@ -110,23 +114,23 @@ ToggleIcon.dungeonBossController = (dungeon) => ({
        handlePrimary: dungeon.bosses.length > 1
                ? nextString(`${dungeon.id}-boss`)
                : (state, setState) => {
-                       setState(toggleBoolean(`${dungeon.id}-boss-defeated`));
+                       setState(toggleBossDefeated(dungeon));
                },
        handleSecondary: dungeon.bosses.length > 1 ?
                previousString(`${dungeon.id}-boss`)
                : (state, setState) => {
-                       setState(toggleBoolean(`${dungeon.id}-boss-defeated`));
+                       setState(toggleBossDefeated(dungeon));
                },
 });
 
-ToggleIcon.dungeonCheckController = (dungeon, max) => ({
-       getActive: (state, icons) => state[`${dungeon.id}-checks`] < max ? icons[1] : null,
+ToggleIcon.dungeonCheckController = (dungeon) => ({
+       getActive: (state, icons) => getDungeonRemainingItems(state, dungeon) ? icons[1] : null,
        getDefault: firstIcon,
        handlePrimary: (state, setState) => {
-               setState(increment(`${dungeon.id}-checks`, max));
+               setState(addDungeonCheck(dungeon));
        },
        handleSecondary: (state, setState) => {
-               setState(decrement(`${dungeon.id}-checks`, max));
+               setState(removeDungeonCheck(dungeon));
        },
 });