UNPKG

@chayns-components/gallery

Version:

A set of beautiful React components for developing your own applications with chayns.

51 lines (49 loc) 1.51 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.generateVideoThumbnail = exports.generatePreviewUrl = exports.filterDuplicateFile = void 0; const filterDuplicateFile = ({ newFile, files }) => { const duplicates = files.filter(({ file }) => file && file.name === newFile.name && file.size === newFile.size); return duplicates.length > 0; }; exports.filterDuplicateFile = filterDuplicateFile; const generatePreviewUrl = ({ callback, file }) => { const reader = new FileReader(); reader.onload = event => { var _event$target; const previewUrl = (_event$target = event.target) === null || _event$target === void 0 ? void 0 : _event$target.result; callback(previewUrl); }; reader.readAsDataURL(file); }; exports.generatePreviewUrl = generatePreviewUrl; const generateVideoThumbnail = ({ file, callback }) => { const canvas = document.createElement('canvas'); const video = document.createElement('video'); // this is important video.autoplay = true; video.muted = true; video.src = URL.createObjectURL(file); video.onloadeddata = () => { const ctx = canvas.getContext('2d'); canvas.width = video.videoWidth; canvas.height = video.videoHeight; ctx === null || ctx === void 0 || ctx.drawImage(video, 0, 0, video.videoWidth, video.videoHeight); video.pause(); callback(canvas.toDataURL('image/png')); }; }; exports.generateVideoThumbnail = generateVideoThumbnail; //# sourceMappingURL=file.js.map