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 39 40 41 42 43 44 45 46 47 48 49 | 1x 1x 1x 1x 1x 1x | import { useCallback } from "react";
import { useAppDispatch, useAppStore } from "store/hooks";
import { sceneSelectors } from "store/features/entities/entitiesSelectors";
import { useContextMenu } from "ui/hooks/use-context-menu";
import renderSceneContextMenu from "components/world/contextMenus/renderSceneContextMenu";
export const useSceneContextMenu = (sceneId: string, isEnabled: boolean) => {
const dispatch = useAppDispatch();
const store = useAppStore();
const getContextMenu = useCallback(
({ closeMenu: onClose }: { closeMenu: () => void }) => {
const state = store.getState();
const scene = sceneSelectors.selectById(state, sceneId);
if (!scene) {
return undefined;
}
const { x: hoverX, y: hoverY } = state.editor.hover;
return renderSceneContextMenu({
dispatch,
sceneId,
additionalSceneIds: state.editor.sceneSelectionIds,
startSceneId: state.project.present.settings.startSceneId,
startDirection: state.project.present.settings.startDirection,
hoverX,
hoverY,
colorsEnabled: state.project.present.settings.colorMode !== "mono",
colorModeOverride: scene.colorModeOverride,
runSceneSelectionOnly:
state.project.present.settings.runSceneSelectionOnly,
onClose,
});
},
[dispatch, sceneId, store],
);
const getContextMenuEnabled = useCallback(() => {
return isEnabled;
}, [isEnabled]);
return useContextMenu({
getMenu: getContextMenu,
getIsEnabled: getContextMenuEnabled,
});
};
|