lingo3d
Version:
Lingo3D is a React/Vue 3d game development framework that ships with a complete visual editor
30 lines • 1.2 kB
JavaScript
import { jsx as _jsx } from "preact/jsx-runtime";
import { pull } from "@lincode/utils";
import { useLayoutEffect } from "preact/hooks";
export const selectTab = (selectedSignal, id) => {
if (selectedSignal.value.at(-1) === id)
return;
pull(selectedSignal.value, id);
selectedSignal.value = [...selectedSignal.value, id];
};
const Tab = ({ children, selected, selectedSignal, disabled, width, id = children }) => {
useLayoutEffect(() => {
selectedSignal &&
(selected || !selectedSignal.value.length) &&
id &&
selectTab(selectedSignal, id);
}, [selected, id]);
return (_jsx("div", { className: "lingo3d-bg lingo3d-flexcenter", style: {
width,
opacity: disabled ? 0.1 : 1,
height: 20,
padding: width ? undefined : 12,
background: !selectedSignal || selectedSignal.value.at(-1) === id
? "rgba(255, 255, 255, 0.1)"
: undefined
}, onClick: disabled || !id
? undefined
: selectedSignal && (() => selectTab(selectedSignal, id)), children: children }));
};
export default Tab;
//# sourceMappingURL=Tab.js.map