UNPKG

@dark-engine/platform-desktop

Version:

Dark renderer to desktop platforms like Windows, Linux, macOS via Nodegui and Qt

39 lines (38 loc) 1.22 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); exports.useEvents = exports.detectIsEvent = exports.createSyntheticEventHandler = exports.SyntheticEvent = void 0; const core_1 = require('@dark-engine/core'); class SyntheticEvent { type = ''; value = null; constructor(options) { this.type = options.type; this.value = options.value; } } exports.SyntheticEvent = SyntheticEvent; function createSyntheticEventHandler(eventName, handler) { const $scope = (0, core_1.$$scope)(); return value => { $scope.setIsEvent(true); handler(new SyntheticEvent({ type: eventName, value })); $scope.setIsEvent(false); }; } exports.createSyntheticEventHandler = createSyntheticEventHandler; const detectIsEvent = attrName => attrName === 'on'; exports.detectIsEvent = detectIsEvent; function useEvents(map) { const scope = (0, core_1.useMemo)(() => ({ map }), []); const $map = (0, core_1.useMemo)(() => { const state = {}; for (const key of Object.keys(scope.map)) { state[key] = (...args) => scope.map[key](...args); } return state; }, []); scope.map = map; return $map; } exports.useEvents = useEvents; //# sourceMappingURL=events.js.map