viewof screenshot = {
let canvas = DOM.canvas(width * window.devicePixelRatio, 50);
canvas.style.cursor = "pointer";
var ctx = canvas.getContext("2d");
ctx.font = "30px Arial";
ctx.fillStyle = "#4196B4";
ctx.textAlign = "center";
ctx.fillText(
"Click here to capture a screenshot!",
canvas.width / 2,
canvas.height / 2
);
const capture = () => {
navigator.mediaDevices
.getDisplayMedia()
.then(stream => {
let track = stream.getVideoTracks()[0];
let capture = new ImageCapture(track);
capture.grabFrame().then(bitmap => {
track.stop();
canvas.width = bitmap.width;
canvas.height = bitmap.height;
canvas.getContext('2d').drawImage(bitmap, 0, 0);
canvas.toBlob(blob => {
canvas.value = blob;
canvas.dispatchEvent(new CustomEvent("input"));
});
});
})
.catch(e => console.log(e));
};
canvas.addEventListener('click', capture);
canvas.style.width = width + "px";
return canvas;
}