UNPKG

@dark-engine/platform-desktop

Version:

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

55 lines (54 loc) 1.68 kB
'use strict'; var __importDefault = (this && this.__importDefault) || function (mod) { return mod && mod.__esModule ? mod : { default: mod }; }; Object.defineProperty(exports, '__esModule', { value: true }); exports.QDarkAnimatedImage = exports.AnimatedImage = void 0; const nodegui_1 = require('@nodegui/nodegui'); const core_1 = require('@dark-engine/core'); const node_fetch_1 = __importDefault(require('node-fetch')); const factory_1 = require('../factory'); const utils_1 = require('../utils'); const AnimatedImage = (0, core_1.component)(props => (0, factory_1.qAnimatedImage)(props), { displayName: 'AnimatedImage', }); exports.AnimatedImage = AnimatedImage; class QDarkAnimatedImage extends nodegui_1.QLabel { constructor() { super(); this.setProperty('scaledContents', true); } async setSrc(value) { if (!value) return; try { this.setMovie(await createMoviewFromPath(value)); this.movie().start(); } catch (error) { console.warn(error); } } setBuffer(buffer) { this.setMovie(createMovieFromBuffer(buffer)); this.movie().start(); } } exports.QDarkAnimatedImage = QDarkAnimatedImage; async function createMoviewFromPath(src) { const movie = new nodegui_1.QMovie(); if ((0, utils_1.detectisValidURL)(src)) { const response = await (0, node_fetch_1.default)(src); const buffer = Buffer.from(await response.arrayBuffer()); movie.loadFromData(buffer); } else { movie.setFileName(src); } return movie; } function createMovieFromBuffer(buffer) { const movie = new nodegui_1.QMovie(); movie.loadFromData(buffer); return movie; } //# sourceMappingURL=animated-image.js.map