added undo redo for builder (not for simulation data)
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
import { useEffect } from 'react'
|
||||
import { useSceneContext } from '../../../sceneContext'
|
||||
import { detectModifierKeys } from '../../../../../utils/shortcutkeys/detectModifierKeys';
|
||||
import { useSocketStore, useToggleView } from '../../../../../store/builder/store';
|
||||
import { useVersionContext } from '../../../../builder/version/versionContext';
|
||||
import useModuleStore from '../../../../../store/useModuleStore';
|
||||
|
||||
import use3DUndoHandler from '../handlers/use3DUndoHandler';
|
||||
import use3DRedoHandler from '../handlers/use3DRedoHandler';
|
||||
|
||||
function UndoRedo3DControls() {
|
||||
const { undoRedo3DStore } = useSceneContext();
|
||||
const { undoStack, redoStack } = undoRedo3DStore();
|
||||
const { toggleView } = useToggleView();
|
||||
const { activeModule } = useModuleStore();
|
||||
const { handleUndo } = use3DUndoHandler();
|
||||
const { handleRedo } = use3DRedoHandler();
|
||||
const { socket } = useSocketStore();
|
||||
const { selectedVersionStore } = useVersionContext();
|
||||
const { selectedVersion } = selectedVersionStore();
|
||||
|
||||
useEffect(() => {
|
||||
console.log(undoStack, redoStack);
|
||||
}, [undoStack, redoStack]);
|
||||
|
||||
useEffect(() => {
|
||||
const handleKeyDown = (event: KeyboardEvent) => {
|
||||
const keyCombination = detectModifierKeys(event);
|
||||
|
||||
if (keyCombination === 'Ctrl+Z') {
|
||||
handleUndo();
|
||||
}
|
||||
|
||||
if (keyCombination === 'Ctrl+Y') {
|
||||
handleRedo();
|
||||
}
|
||||
};
|
||||
|
||||
if (!toggleView) {
|
||||
window.addEventListener('keydown', handleKeyDown);
|
||||
}
|
||||
|
||||
return () => {
|
||||
window.removeEventListener('keydown', handleKeyDown);
|
||||
};
|
||||
}, [toggleView, undoStack, redoStack, socket, selectedVersion, activeModule]);
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
export default UndoRedo3DControls;
|
||||
Reference in New Issue
Block a user