Loading frontend/src/components/task-view/analysis/batch/visualization/BatchVisualizationPanel.tsx +3 −3 Original line number Diff line number Diff line Loading @@ -49,6 +49,7 @@ const BatchVisualizationPanel = () => { handleShowFace, handleShowFaces, handleContextMenu, handleKeyUp, handleCloseContextMenu, showHidden, hideBoth, Loading Loading @@ -209,9 +210,7 @@ const BatchVisualizationPanel = () => { spacing={2} > <Grid item> <span style={{ fontWeight: 'bold' }}> Selection mode: {selectionMode ? 'ON' : 'OFF'} </span> <span style={{ fontWeight: 'bold' }}>Layout mode:</span> </Grid> <Grid item> <Button Loading Loading @@ -256,6 +255,7 @@ const BatchVisualizationPanel = () => { onMouseMove={handleHeatmapDrag} onMouseUp={finalizeDrag} onKeyDown={handleKeyDown} onKeyUp={handleKeyUp} role="button" tabIndex={0} > Loading frontend/src/hooks/visualization/useHeatmapManagement.ts +10 −2 Original line number Diff line number Diff line Loading @@ -86,6 +86,7 @@ const useHeatmapManagement = () => { const [isPairClicked, setIsPairClicked] = useState(false); const [distance, setDistance] = useState<number | null>(null); const [clusteringSteps, setClusteringSteps] = useState<PairStep[]>([]); const [isCtrlPressed, setIsCtrlPressed] = useState(false); const [localLinkageStrategy, setLocalLinkageStrategy] = useState( LinkageStrategy.AVERAGE ); Loading Loading @@ -532,13 +533,19 @@ const useHeatmapManagement = () => { const handleKeyDown = useCallback( (event: React.KeyboardEvent<HTMLDivElement>) => { if (event.key === 'S' || event.key === 's') { if (event.ctrlKey && !isCtrlPressed) { toggleSelectionMode(); setIsCtrlPressed(true); } }, [] [isCtrlPressed] ); const handleKeyUp = useCallback(() => { toggleSelectionMode(); setIsCtrlPressed(false); }, [isCtrlPressed]); const handlePrepareHeatmapData = async ( batchDistancesDto: BatchDistancesDto | null ) => { Loading Loading @@ -580,6 +587,7 @@ const useHeatmapManagement = () => { handleShowFace, handleShowFaces, handleContextMenu, handleKeyUp, handleCloseContextMenu, showHidden, hideBoth, Loading Loading
frontend/src/components/task-view/analysis/batch/visualization/BatchVisualizationPanel.tsx +3 −3 Original line number Diff line number Diff line Loading @@ -49,6 +49,7 @@ const BatchVisualizationPanel = () => { handleShowFace, handleShowFaces, handleContextMenu, handleKeyUp, handleCloseContextMenu, showHidden, hideBoth, Loading Loading @@ -209,9 +210,7 @@ const BatchVisualizationPanel = () => { spacing={2} > <Grid item> <span style={{ fontWeight: 'bold' }}> Selection mode: {selectionMode ? 'ON' : 'OFF'} </span> <span style={{ fontWeight: 'bold' }}>Layout mode:</span> </Grid> <Grid item> <Button Loading Loading @@ -256,6 +255,7 @@ const BatchVisualizationPanel = () => { onMouseMove={handleHeatmapDrag} onMouseUp={finalizeDrag} onKeyDown={handleKeyDown} onKeyUp={handleKeyUp} role="button" tabIndex={0} > Loading
frontend/src/hooks/visualization/useHeatmapManagement.ts +10 −2 Original line number Diff line number Diff line Loading @@ -86,6 +86,7 @@ const useHeatmapManagement = () => { const [isPairClicked, setIsPairClicked] = useState(false); const [distance, setDistance] = useState<number | null>(null); const [clusteringSteps, setClusteringSteps] = useState<PairStep[]>([]); const [isCtrlPressed, setIsCtrlPressed] = useState(false); const [localLinkageStrategy, setLocalLinkageStrategy] = useState( LinkageStrategy.AVERAGE ); Loading Loading @@ -532,13 +533,19 @@ const useHeatmapManagement = () => { const handleKeyDown = useCallback( (event: React.KeyboardEvent<HTMLDivElement>) => { if (event.key === 'S' || event.key === 's') { if (event.ctrlKey && !isCtrlPressed) { toggleSelectionMode(); setIsCtrlPressed(true); } }, [] [isCtrlPressed] ); const handleKeyUp = useCallback(() => { toggleSelectionMode(); setIsCtrlPressed(false); }, [isCtrlPressed]); const handlePrepareHeatmapData = async ( batchDistancesDto: BatchDistancesDto | null ) => { Loading Loading @@ -580,6 +587,7 @@ const useHeatmapManagement = () => { handleShowFace, handleShowFaces, handleContextMenu, handleKeyUp, handleCloseContextMenu, showHidden, hideBoth, Loading