All files / src/components/world/entities/scenes/cursor/modes useSceneSelectCursorMode.ts

0% Statements 0/16
0% Branches 0/1
0% Functions 0/4
0% Lines 0/14

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38                                                                           
import { useCallback, useMemo } from "react";
import { TOOL_SELECT } from "consts";
import editorActions from "store/features/editor/editorActions";
import { useAppDispatch, useAppSelector } from "store/hooks";
import type {
  SceneCursorMode,
  SceneCursorMouseDownHandler,
} from "./SceneCursorMode";
 
export const useSceneSelectCursorMode = (): SceneCursorMode => {
  const dispatch = useAppDispatch();
  const tool = useAppSelector((state) => state.editor.tool);
 
  const onMouseDown = useCallback<SceneCursorMouseDownHandler>(
    (e) => {
      Iif (tool !== TOOL_SELECT) {
        return false;
      }
 
      dispatch(editorActions.selectScene({ sceneId: e.sceneId }));
 
      return true;
    },
    [dispatch, tool],
  );
 
  return useMemo(
    () => ({
      id: "sceneSelect",
      enabled: tool === TOOL_SELECT,
      viewPriority: -1000,
      eventPriority: 0,
      onMouseDown,
    }),
    [onMouseDown, tool],
  );
};