lingo3d
Version:
Lingo3D is a React/Vue 3d game development framework that ships with a complete visual editor
40 lines • 2.34 kB
JavaScript
import { jsx as _jsx, jsxs as _jsxs } from "preact/jsx-runtime";
import { signal } from "@preact/signals";
import ContextMenu from "../component/ContextMenu";
import MenuButton from "../component/MenuButton";
import openJSON from "../../api/files/openJSON";
import openFolder from "../../api/files/openFolder";
import saveJSON from "../../api/files/saveJSON";
import exportJSON from "../../api/files/exportJSON";
import { setScript } from "../../states/useScript";
import Script from "../../display/Script";
import { newScriptDialogSignal } from "../ScriptEditor/NewScriptDialog";
export const menuBarFileContextMenuSignal = signal(undefined);
const MenuBarFileContextMenu = () => {
return (_jsxs(ContextMenu, { positionSignal: menuBarFileContextMenuSignal, children: [_jsx(MenuButton, { children: "New File" }), _jsx(MenuButton, { onClick: () => {
newScriptDialogSignal.value = {
onConfirm: (name, language) => {
const script = new Script();
script.name = name;
script.language = language;
script.code = `import { createSystem } from "lingo3d"`;
setScript(script);
}
};
menuBarFileContextMenuSignal.value = undefined;
}, children: "New Script" }), _jsx(MenuButton, { onClick: () => {
openJSON();
menuBarFileContextMenuSignal.value = undefined;
}, children: "Open" }), _jsx(MenuButton, { onClick: () => {
openFolder();
menuBarFileContextMenuSignal.value = undefined;
}, children: "Open Folder" }), _jsx(MenuButton, { onClick: () => {
saveJSON();
menuBarFileContextMenuSignal.value = undefined;
}, children: "Save" }), _jsx(MenuButton, { onClick: () => {
exportJSON();
menuBarFileContextMenuSignal.value = undefined;
}, children: "Save As" }), _jsx(MenuButton, { children: "Export for React" }), _jsx(MenuButton, { children: "Export for Vue 3" })] }));
};
export default MenuBarFileContextMenu;
//# sourceMappingURL=MenuBarFileContextMenu.js.map