@chayns-components/gallery
Version:
A set of beautiful React components for developing your own applications with chayns.
41 lines (40 loc) • 1.06 kB
JavaScript
export const filterDuplicateFile = ({
newFile,
files
}) => {
const duplicates = files.filter(({
file
}) => file && file.name === newFile.name && file.size === newFile.size);
return duplicates.length > 0;
};
export const generatePreviewUrl = ({
callback,
file
}) => {
const reader = new FileReader();
reader.onload = event => {
const previewUrl = event.target?.result;
callback(previewUrl);
};
reader.readAsDataURL(file);
};
export 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?.drawImage(video, 0, 0, video.videoWidth, video.videoHeight);
video.pause();
callback(canvas.toDataURL('image/png'));
};
};
//# sourceMappingURL=file.js.map