lingo3d
Version:
Lingo3D is a React/Vue 3d game development framework that ships with a complete visual editor
35 lines • 1.62 kB
JavaScript
import { jsx as _jsx, jsxs as _jsxs } from "preact/jsx-runtime";
import { upperFirst } from "@lincode/utils";
import createObject from "../../api/serializer/createObject";
import GameGraph from "../../visualScripting/GameGraph";
import { setGameGraph } from "../../states/useGameGraph";
import dragToCreate, { setDragImage } from "../utils/dragToCreate";
import ComponentIconImage from "./ComponentIconImage";
import DummyIK from "../../display/DummyIK";
import { setDummyIK } from "../../states/useDummyIK";
const setDraggingItem = dragToCreate((val) => {
const result = createObject(val);
if (result instanceof GameGraph)
setGameGraph(result);
else if (result instanceof DummyIK)
setDummyIK(result);
return result;
});
const ComponentIcon = ({ name, iconName = name, onDragStart, onDragEnd }) => {
return (_jsxs("div", { draggable: true, onDragStart: (e) => {
setDraggingItem(name);
setDragImage(e);
onDragStart?.(name);
}, onDragEnd: () => {
setDraggingItem(undefined);
onDragEnd?.();
}, className: "lingo3d-flexcenter lingo3d-flexcol", style: { width: "50%", paddingTop: 20, paddingBottom: 20 }, children: [_jsx(ComponentIconImage, { iconName: iconName }), _jsx("div", { style: {
marginTop: 6,
opacity: 0.75,
overflow: "hidden",
textOverflow: "ellipsis",
maxWidth: "100%"
}, children: upperFirst(name) })] }));
};
export default ComponentIcon;
//# sourceMappingURL=ComponentIcon.js.map