Skip to content

Commit b1f7b2c

Browse files
committed
[FEAT]: Add ogv, oga and ogx icons
1 parent d6fd9f3 commit b1f7b2c

5 files changed

Lines changed: 35 additions & 17 deletions

File tree

src/components/file-item/components/FileItem/FileItem.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,8 +92,9 @@ const FileItem: FC<FileItemProps> = (props: FileItemProps) => {
9292
return;
9393
} else {
9494
const headerMime = file.type ? file.type.split("/")[0] : "octet";
95+
const tailMime = file.type ? file.type.split("/")[1] : "octet";
9596
setIsImage(headerMime === "image");
96-
setIsVideo(headerMime === "video");
97+
setIsVideo(headerMime === "video" && ["mp4","ogg","webm"].includes(tailMime));
9798
if (preview && valid && headerMime === "image") {
9899
const response = await readImagePromise(file);
99100
if (response) {

src/components/file-item/components/FileItemMainLayer/FileItemMainLayer.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,8 @@ const FileItemMainLayer: FC<FileItemMainLayerProps> = (
5555
localization,
5656
hovering,
5757
} = props;
58-
58+
console.log("FileItemMainLayer onOpenVideo", onOpenVideo);
59+
console.log("FileItemMainLayer isVideo", isVideo);
5960
const handleDelete = () => {
6061
onDelete?.();
6162
};

src/components/file-item/utils/IconFiles/index.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,12 @@ export const octet = "https://user-images.githubusercontent.com/43678736/1320866
126126
export const odp = "https://user-images.githubusercontent.com/43678736/132086667-6c7dcbcc-8d83-41a2-8e0a-85b09e2791ae.png";
127127
export const ods = "https://user-images.githubusercontent.com/43678736/132086668-9f246e91-cf2e-49cf-9617-e1fbb71abbbb.png";
128128
export const odt = "https://user-images.githubusercontent.com/43678736/132086669-46113762-84d1-4b32-9441-b0138ce17a5d.png";
129+
130+
//ogg type
131+
export const oga = "https://user-images.githubusercontent.com/43678736/145835364-2054509d-3448-4d34-921f-73dd6e297fc7.png";
132+
export const ogv = "https://user-images.githubusercontent.com/43678736/145835367-19172bf8-cd5a-4cbe-b512-d0de1d91f269.png";
133+
export const ogx = "https://user-images.githubusercontent.com/43678736/145835373-a57ef0f5-3968-483b-9f55-6d67e7f1dcea.png";
134+
129135
export const opus = "https://user-images.githubusercontent.com/43678736/132086670-0f96e770-cedc-4635-a5f9-cf97894c1d7a.png";
130136
export const otf = "https://user-images.githubusercontent.com/43678736/132086671-02ad35ef-ec3a-4a65-abd5-5bf794dfcf7b.png";
131137
export const pdf = "https://user-images.githubusercontent.com/43678736/132086672-3a856fda-823d-4997-b802-c7c640e6ef44.png";

src/components/file-item/utils/mime.files.ts

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@ import {
1010
html, icalendar,
1111
jar, java, javascript, jpeg, json, jsonld,
1212
midi, mp3, mp4, mpeg, mpkg,
13-
octet, odp, ods, odt, opus, otf,
13+
octet, odp, ods, odt, oga, ogv, ogx, opus, otf,
1414
pdf, php, png, pptx, psd, python,
1515
rar, react, rtf,
16-
sass, sevenzip, sh, swf,
16+
sass, sevenzip, sh, swf,
1717
tar, text, tiff, ttf, typescript,
1818
vsd, vue,
1919
wav, weba, webm, webp, wma, wmv, woff,
@@ -33,7 +33,7 @@ export const audioSelector = (tailMime: string): string => {
3333
case "midi": return "midi";
3434
case "x-midi": return "midi";
3535
case "mpeg": return "mpeg";//mp3
36-
// case "ogg": return "oga";
36+
case "ogg": return "oga";
3737
case "opus": return "opus";
3838
case "wav": return "wav";
3939
case "webm": return "webm";
@@ -90,9 +90,10 @@ export const videoSelector = (tailMime: string): string => {
9090
switch (tailMime) {
9191
case "x-msvideo": return "avi";
9292
case "msvideo": return "avi";
93+
case "avi": return "avi";
9394
case "mp4": return "mp4";
9495
case "mpeg": return "mpeg";
95-
// case "ogg": return "ogv";
96+
case "ogg": return "ogv";
9697
case "mp2t": return "mp2t";
9798
case "wmv": return "wmv";
9899

@@ -132,7 +133,7 @@ export const applicationSelector = (tailMime: string): string => {
132133
case "json": return "json";
133134
case "ld+json": return "jsonld";
134135
case "vnd.apple.installer+xml": return "mpkg";
135-
//case "ogg": return "ogx";
136+
case "ogg": return "ogx";
136137
case "vnd.rar": return "rar";
137138
case "rtf": return "rtf";
138139
case "x-sh": return "sh";
@@ -340,9 +341,9 @@ const mimeUrlList: MimeSelector = {
340341
odp: odp,
341342
ods: ods,
342343
odt: odt,
343-
// oga: oga,
344-
//ogv: ogv,
345-
// ogx: ogx,
344+
oga: oga,
345+
ogv: ogv,
346+
ogx: ogx,
346347
opus: opus,
347348
otf: otf,
348349
png: png,

src/components/video-preview/VideoPreview.tsx

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,19 +6,29 @@ import { Cancel } from "../icons";
66
import { VideoPreviewProps } from "./VideoPreviewProps";
77
import "./VideoPreview.scss";
88
const VideoPreview: FC<VideoPreviewProps> = (props: VideoPreviewProps) => {
9-
const { videoSrc, openVideo, onClose, autoplay, controls , style} = props;
9+
const { videoSrc, openVideo, onClose, autoplay, controls, style } = props;
1010
const videoRef = useRef<HTMLVideoElement>(null);
1111
const [source, setSource] = useState<string | undefined>(undefined);
1212

1313
useEffect(() => {
14+
//if not undefined
1415
if (!videoSrc) {
1516
return;
1617
}
18+
1719
if (typeof videoSrc === "string") {
20+
//if a url string is given, assign it directly
1821
setSource(videoSrc);
1922
} else {
20-
const newVideoSrc = URL.createObjectURL(videoSrc);
21-
setSource(newVideoSrc);
23+
//if a File object is given, check if is a supported format
24+
const headerMime = videoSrc.type ? videoSrc.type.split("/")[0] : "octet";
25+
const tailMime = videoSrc.type ? videoSrc.type.split("/")[1] : "octet";
26+
27+
if (headerMime === "video" && ["mp4", "ogg", "webm"].includes(tailMime)) {
28+
//set the video source and create the uri string if is a supported video format
29+
const newVideoSrc = URL.createObjectURL(videoSrc);
30+
setSource(newVideoSrc);
31+
}
2232
}
2333
}, [videoSrc]);
2434
useEffect(() => {
@@ -27,10 +37,8 @@ const VideoPreview: FC<VideoPreviewProps> = (props: VideoPreviewProps) => {
2737
}
2838
}, [source]);
2939

30-
31-
3240
function handleClose<T extends HTMLDivElement>(
33-
e: React.MouseEvent<T, MouseEvent>
41+
e: React.MouseEvent<T, MouseEvent>,
3442
): void {
3543
e.stopPropagation();
3644
onClose?.();
@@ -41,7 +49,8 @@ const VideoPreview: FC<VideoPreviewProps> = (props: VideoPreviewProps) => {
4149
className={openVideo ? "video-container show" : "video-container"}
4250
onClick={handleClose}
4351
>
44-
{videoSrc && openVideo && (
52+
{//videoSrc &&
53+
openVideo && (
4554
<div
4655
className="vid-rel-container"
4756
onClick={(evt) => {

0 commit comments

Comments
 (0)