diff --git a/src/renderer/modules/KeysTabs/LayersTab.tsx b/src/renderer/modules/KeysTabs/LayersTab.tsx index 5466a9ba4..9809ae040 100644 --- a/src/renderer/modules/KeysTabs/LayersTab.tsx +++ b/src/renderer/modules/KeysTabs/LayersTab.tsx @@ -37,6 +37,8 @@ const LayersTab = ({ }: LayersTabProps) => { const [disableOneShotButtons, setDisableOneShotButtons] = useState(false); const [openKeysPopover, setOpenKeysPopover] = useState(false); + const [activeLayerNumber, setActiveLayerNumber] = useState(findLayerType(keyCode.base + keyCode.modified)?.layer); + const [activeLayerTab, setActiveLayerTab] = useState(findLayerType(keyCode.base + keyCode.modified)?.type); const [KC, setKC] = useState(0); const layers = useMemo( @@ -95,9 +97,6 @@ const LayersTab = ({ keyNumInternal = 0; } - const [activeLayerNumber, setActiveLayerNumber] = useState(0); - const [activeLayerTab, setActiveLayerTab] = useState(""); - const handleLayer = (layerNumber: number) => { const layerItem = findLayerType(undefined, activeLayerTab, layerNumber); // console.log("Layer inside handle: ", layerItem); @@ -114,6 +113,12 @@ const LayersTab = ({ } }; + const handleSetActiveLayerTab = (value: "layerLock" | "layerShift" | "layerShot" | "layerDual") => { + setActiveLayerTab(value); + const layerItem = findLayerType(undefined, value, activeLayerNumber); + onKeySelect(layerItem.keynum); + }; + const handleDual = (keyBase: number) => { const layerItem = findLayerType(undefined, activeLayerTab, activeLayerNumber); if (layerItem && layerItem.type === "layerDual") { @@ -127,9 +132,6 @@ const LayersTab = ({ if (macros && activeTab === "macro" && layerItem && triggerDeleteLastItem) { triggerDeleteLastItem.timelineEditorForm.current.timelineEditorMacroTable.current.onDeleteRow(macros.actions.length - 1); } - if (layerItem && layerItem.type !== "layerDual") { - onKeySelect(layerItem.keynum); - } // eslint-disable-next-line }, [activeLayerTab]); @@ -284,9 +286,9 @@ const LayersTab = ({
Turn into layer lock
} - onClick={() => { + onClick={value => { if (activeLayerNumber > 0) { - setActiveLayerTab(previous => (previous === "layerLock" ? "layerShift" : "layerLock")); + handleSetActiveLayerTab(value ? "layerLock" : "layerShift"); } else { triggerToast(); } @@ -314,9 +316,9 @@ const LayersTab = ({ Add a key on tap} disabled={activeLayerNumber >= 9} - onClick={() => { + onClick={value => { if (activeLayerNumber > 0 && activeLayerNumber <= 8) { - setActiveLayerTab(previous => (previous === "layerDual" ? "layerShift" : "layerDual")); + handleSetActiveLayerTab(value ? "layerDual" : "layerShift"); setOpenKeysPopover(true); } else if (activeLayerNumber >= 9) { triggerToastOneShot(); @@ -351,9 +353,9 @@ const LayersTab = ({ Turn into OneShot layer} disabled={activeLayerNumber >= 9} - onClick={() => { + onClick={value => { if (activeLayerNumber > 0 && activeLayerNumber <= 8) { - setActiveLayerTab(previous => (previous === "layerShot" ? "layerShift" : "layerShot")); + handleSetActiveLayerTab(value ? "layerShot" : "layerShift"); setDisableOneShotButtons(true); } else if (activeLayerNumber >= 9) { triggerToastOneShot();