X-Git-Url: https://git.localhorst.tv/?a=blobdiff_plain;f=resources%2Fjs%2Fcomponents%2Ftracker%2FToggleIcon.js;h=3f6af9641c0926acb2bf31b1cd8618e74ffe5c3d;hb=3603709307e0777958cd18134ad4178cef410d14;hp=49375ef97695b09f00b9998f484e5962ad21d11d;hpb=b5a50d74cf042fa7fc874d8184dc37ae20bb74dd;p=alttp.git diff --git a/resources/js/components/tracker/ToggleIcon.js b/resources/js/components/tracker/ToggleIcon.js index 49375ef..3f6af96 100644 --- a/resources/js/components/tracker/ToggleIcon.js +++ b/resources/js/components/tracker/ToggleIcon.js @@ -163,7 +163,38 @@ ToggleIcon.medallionController = { getActive: highestActive, getDefault: firstIcon, handlePrimary: nextIcon, - handleSecondary: doNothing, + handleSecondary: (state, setState, icons) => { + const mm = state['mm-medallion']; + const tr = state['tr-medallion']; + const isMM = mm === icons[0]; + const isTR = tr === icons[0]; + console.log({ mm, isMM, tr, isTR }); + if (!isMM && !isTR) { + // empty: set as MM if mire is unset, else set as TR if TR is unset + if (!mm) { + setState(s => ({ ...s, 'mm-medallion': icons[0] })); + } else if (!tr) { + setState(s => ({ ...s, 'tr-medallion': icons[0] })); + } + } else if (isMM && !isTR) { + // MM: if TR is free, switch to TR, otherwise remove MM + if (!tr) { + setState(s => ({ ...s, 'mm-medallion': null, 'tr-medallion': icons[0] })); + } else { + setState(s => ({ ...s, 'mm-medallion': null })); + } + } else if (!isMM && isTR) { + // TR: if MM is free, switch to both, otherwise remove TR + if (!mm) { + setState(s => ({ ...s, 'mm-medallion': icons[0] })); + } else { + setState(s => ({ ...s, 'tr-medallion': null })); + } + } else { + // both: remove both + setState(s => ({ ...s, 'mm-medallion': null, 'tr-medallion': null })); + } + }, }; ToggleIcon.modulusController = ctrl => ({