UNPKG

@dark-engine/platform-desktop

Version:

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

34 lines (33 loc) 1.32 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); exports.DropShadowEffect = void 0; const nodegui_1 = require('@nodegui/nodegui'); const core_1 = require('@dark-engine/core'); const utils_1 = require('../utils'); const DropShadowEffect = (0, core_1.component)( props => { const { ref, blurRadius, xOffset = 1, yOffset = 1, color, disabled = false, slot } = props; const component = slot; const rootRef = (0, core_1.useRef)(null); const gfx = (0, core_1.useMemo)(() => new nodegui_1.QGraphicsDropShadowEffect(), []); if ((0, core_1.detectIsArray)(slot)) { (0, utils_1.illegal)(`The DropShadowEffect supports only one child node!`); } (0, core_1.useLayoutEffect)(() => { rootRef.current.setGraphicsEffect(gfx); }, []); (0, core_1.useLayoutEffect)(() => { gfx.setBlurRadius(blurRadius); gfx.setXOffset(xOffset); gfx.setYOffset(yOffset); color && gfx.setColor(color); gfx.setEnabled(!disabled); }, [blurRadius, xOffset, yOffset, color, disabled]); (0, core_1.useImperativeHandle)(ref, () => ({ node: rootRef.current })); component.props.ref = ref; return component; }, { displayName: 'DropShadowEffect' }, ); exports.DropShadowEffect = DropShadowEffect; //# sourceMappingURL=drop-shadow-effect.js.map