UNPKG

@jbrowse/core

Version:

JBrowse 2 core libraries used by plugins

35 lines (34 loc) 1.36 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const jsx_runtime_1 = require("react/jsx-runtime"); const react_1 = require("react"); const offscreenCanvasPonyfill_1 = require("../util/offscreenCanvasPonyfill"); function PrerenderedCanvas(props) { const { width, height, highResolutionScaling = 1, style = {}, imageData, blockKey, showSoftClip, } = props; const [done, setDone] = (0, react_1.useState)(false); const featureCanvas = (0, react_1.useRef)(null); (0, react_1.useEffect)(() => { if (!imageData) { return; } const canvas = featureCanvas.current; if (!canvas) { return; } const context = canvas.getContext('2d'); if (!context) { return; } (0, offscreenCanvasPonyfill_1.drawImageOntoCanvasContext)(imageData, context); setDone(true); }, [imageData]); return ((0, jsx_runtime_1.jsx)("canvas", { "data-testid": [ 'prerendered_canvas', showSoftClip ? 'softclipped' : '', blockKey, done ? 'done' : '', ] .filter(f => !!f) .join('_'), ref: featureCanvas, width: width * highResolutionScaling, height: height * highResolutionScaling, style: { width, height, ...style } })); } exports.default = PrerenderedCanvas;