@chayns-components/gallery
Version:
A set of beautiful React components for developing your own applications with chayns.
51 lines (49 loc) • 1.51 kB
JavaScript
;
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