lingo3d
Version:
Lingo3D is a React/Vue 3d game development framework that ships with a complete visual editor
26 lines • 1.14 kB
JavaScript
import { jsx as _jsx } from "preact/jsx-runtime";
import { memo } from "preact/compat";
import computePerFrame from "../../memo/utils/computePerFrame";
import { getIncludeKeys } from "../../visualScripting/utils/getIncludeKeys";
import Switch from "../component/Switch";
import { forceGetInstance } from "@lincode/utils";
import { runtimeIncludeKeysMap } from "../../collections/runtimeCollections";
const getIncludeRecord = computePerFrame((manager) => {
const includeKeys = getIncludeKeys(manager);
const result = {};
for (const key of includeKeys)
result[key] = true;
return result;
});
const Toggle = memo(({ manager, property }) => {
return (_jsx(Switch, { compact: true, on: getIncludeRecord(manager)[property], onChange: (val) => {
const runtimeIncludeKeys = forceGetInstance(runtimeIncludeKeysMap, manager, Set);
if (val)
runtimeIncludeKeys.add(property);
else
runtimeIncludeKeys.delete(property);
manager.$emitEvent("runtimeSchema");
} }));
}, () => true);
export default Toggle;
//# sourceMappingURL=Toggle.js.map