mylingo3d
Version:
Lingo3D is a React/Vue 3d game development framework that ships with a complete visual editor
24 lines • 946 B
JavaScript
import store, { createEffect } from "@lincode/reactivity";
import { isPositionedItem } from "../api/core/PositionedItem";
import SimpleObjectManager from "../display/core/SimpleObjectManager";
import { getSelectionTarget } from "./useSelectionTarget";
import { getEditorMode } from "./useEditorMode";
export const [setEditorModeComputed, getEditorModeComputed] = store(getEditorMode());
createEffect(() => {
const target = getSelectionTarget();
const mode = getEditorMode();
if (!target || mode === "select") {
setEditorModeComputed(mode);
return;
}
if (!isPositionedItem(target)) {
setEditorModeComputed("select");
return;
}
if (!(target instanceof SimpleObjectManager)) {
setEditorModeComputed("translate");
return;
}
setEditorModeComputed(mode);
}, [getEditorMode, getSelectionTarget]);
//# sourceMappingURL=useEditorModeComputed.js.map