X-Git-Url: https://git.localhorst.tv/?a=blobdiff_plain;f=resources%2Fjs%2Fhooks%2Ftracker.js;fp=resources%2Fjs%2Fhooks%2Ftracker.js;h=249a34bfe283bb8dfb000812c43d8d86cbaacfa8;hb=5fe70ee6bc5380c556169756a375956799093604;hp=be5a52f063604aad4eaeb7d88dcd650df2c4f87d;hpb=6e3215622bf9f57efd9010268ad9e8ef9a913348;p=alttp.git diff --git a/resources/js/hooks/tracker.js b/resources/js/hooks/tracker.js index be5a52f..249a34b 100644 --- a/resources/js/hooks/tracker.js +++ b/resources/js/hooks/tracker.js @@ -1,7 +1,7 @@ import PropTypes from 'prop-types'; import React from 'react'; -import { CONFIG, DUNGEONS, makeEmptyState } from '../helpers/tracker'; +import { CONFIG, DUNGEONS, makeEmptyState, mergeStates } from '../helpers/tracker'; const context = React.createContext({}); @@ -10,6 +10,8 @@ export const useTracker = () => React.useContext(context); export const TrackerProvider = ({ children }) => { const [config, setConfig] = React.useState(CONFIG); const [state, setState] = React.useState(makeEmptyState()); + const [autoState, setAutoState] = React.useState(makeEmptyState()); + const [manualState, setManualState] = React.useState(makeEmptyState()); const [dungeons, setDungeons] = React.useState(DUNGEONS); React.useEffect(() => { @@ -35,8 +37,12 @@ export const TrackerProvider = ({ children }) => { setDungeons(newDungeons); }, [config]); + React.useEffect(() => { + setState(mergeStates(autoState, manualState)); + }, [autoState, manualState]); + const value = React.useMemo(() => { - return { config, setConfig, dungeons, setState, state }; + return { config, setConfig, dungeons, setAutoState, setManualState, state }; }, [config, dungeons, state]); return