UNPKG

@dark-engine/platform-desktop

Version:

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

39 lines (38 loc) 1.36 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); exports.BlurEffect = void 0; const nodegui_1 = require('@nodegui/nodegui'); const QGraphicsBlurEffect_1 = require('@nodegui/nodegui/dist/lib/QtWidgets/QGraphicsBlurEffect'); const core_1 = require('@dark-engine/core'); const utils_1 = require('../utils'); const BlurEffect = (0, core_1.component)( props => { const { ref, blurRadius, blurHint = QGraphicsBlurEffect_1.BlurHint.PerformanceHint, disabled = false, slot, } = props; const component = slot; const rootRef = (0, core_1.useRef)(null); const gfx = (0, core_1.useMemo)(() => new nodegui_1.QGraphicsBlurEffect(), []); if ((0, core_1.detectIsArray)(slot)) { (0, utils_1.illegal)(`The BlurEffect supports only one child node!`); } (0, core_1.useLayoutEffect)(() => { rootRef.current.setGraphicsEffect(gfx); }, []); (0, core_1.useLayoutEffect)(() => { gfx.setBlurRadius(blurRadius); gfx.setBlurHints(blurHint); gfx.setEnabled(!disabled); }, [blurRadius, blurHint, disabled]); (0, core_1.useImperativeHandle)(ref, () => ({ node: rootRef.current })); component.props.ref = ref; return component; }, { displayName: 'BlurEffect' }, ); exports.BlurEffect = BlurEffect; //# sourceMappingURL=blur-effect.js.map