UNPKG

@jbrowse/core

Version:

JBrowse 2 core libraries used by plugins

34 lines (33 loc) 1.28 kB
import { jsx as _jsx } from "react/jsx-runtime"; import { useEffect, useRef, useState } from 'react'; import { drawImageOntoCanvasContext } from "../util/offscreenCanvasPonyfill.js"; function PrerenderedCanvas(props) { const { width, height, highResolutionScaling = 1, style = {}, imageData, blockKey, showSoftClip, } = props; const [done, setDone] = useState(false); const featureCanvas = useRef(null); useEffect(() => { if (!imageData) { return; } const canvas = featureCanvas.current; if (!canvas) { return; } const context = canvas.getContext('2d'); if (!context) { return; } context.clearRect(0, 0, canvas.width, canvas.height); drawImageOntoCanvasContext(imageData, context); setDone(true); }, [imageData]); return (_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 } })); } export default PrerenderedCanvas;