X-Git-Url: https://git.localhorst.tv/?a=blobdiff_plain;f=resources%2Fjs%2Fcomponents%2Ftracker%2FToolbar.js;h=85e0f0428bf6bb4d47c7dbfa6833d602a9c1df80;hb=07c9bbbb2c6ddde460f48245699f27eaf66b8ac3;hp=020826635a65a215fa89bf452c81d5af58734a61;hpb=249e06be11d0f7778d99956c87d4f0a8ac7e69f7;p=alttp.git diff --git a/resources/js/components/tracker/Toolbar.js b/resources/js/components/tracker/Toolbar.js index 0208266..85e0f04 100644 --- a/resources/js/components/tracker/Toolbar.js +++ b/resources/js/components/tracker/Toolbar.js @@ -1,10 +1,13 @@ import React from 'react'; -import { Button, Container, Navbar } from 'react-bootstrap'; +import { Button, Container, Form, Navbar } from 'react-bootstrap'; +import { useTranslation } from 'react-i18next'; import AutoTracking from './AutoTracking'; import ConfigDialog from './ConfigDialog'; import ToggleIcon from './ToggleIcon'; import Icon from '../common/Icon'; +import ZeldaIcon from '../common/ZeldaIcon'; +import { getConfigValue } from '../../helpers/tracker'; import { useTracker } from '../../hooks/tracker'; const mapWild = { @@ -17,8 +20,22 @@ const mapWild = { const Toolbar = () => { const [showConfigDialog, setShowConfigDialog] = React.useState(false); const { config, saveConfig } = useTracker(); + const { t } = useTranslation(); - const controller = React.useMemo(() => ({ + const handleConfigChange = React.useCallback(({ target: { name, value } }) => { + saveConfig({ [name]: value }); + }, [saveConfig]); + + const bossController = React.useMemo(() => ({ + getActive: (state, icons) => config.bossShuffle ? icons[0] : null, + getDefault: (state, icons) => icons[0], + handlePrimary: () => { + saveConfig({ bossShuffle: !config.bossShuffle}); + }, + handleSecondary: () => null, + }), [config, saveConfig]); + + const wildController = React.useMemo(() => ({ getActive: (state, icons) => config[mapWild[icons[0]]] ? icons[0] : null, getDefault: (state, icons) => icons[0], handlePrimary: (state, setState, icons) => { @@ -28,6 +45,15 @@ const Toolbar = () => { handleSecondary: () => null, }), [config, saveConfig]); + const worldController = React.useMemo(() => ({ + getActive: (state, icons) => config.worldState === 'inverted' ? icons[1] : icons[0], + getDefault: (state, icons) => icons[0], + handlePrimary: () => { + saveConfig({ worldState: config.worldState == 'inverted' ? 'open' : 'inverted' }); + }, + handleSecondary: () => null, + }), [config, saveConfig]); + return
@@ -38,12 +64,78 @@ const Toolbar = () => { > - - - - + + + + + + +
+
+ + + + + + {['?', 0, 1, 2, 3, 4, 5, 6, 7].map(n => + + )} + + + + + + + + {['?', 0, 1, 2, 3, 4, 5, 6, 7].map(n => + + )} + + + + + + + + {['ganon', 'fast', 'ad', 'ped', 'trinity', 'thunt', 'ghunt'].map(n => + + )} + + +
+
+
-
setShowConfigDialog(false)} show={showConfigDialog} />
;