From 29a6b121bb08d602f92090f73f095bfc8ed790d1 Mon Sep 17 00:00:00 2001 From: Elio Struyf Date: Tue, 5 Apr 2022 15:46:23 +0200 Subject: [PATCH] #308 - image check and if unknown, show file icon --- .../components/Media/Item.tsx | 42 ++++++++++++++----- 1 file changed, 31 insertions(+), 11 deletions(-) diff --git a/src/dashboardWebView/components/Media/Item.tsx b/src/dashboardWebView/components/Media/Item.tsx index 86c8ad92..f8856d4f 100644 --- a/src/dashboardWebView/components/Media/Item.tsx +++ b/src/dashboardWebView/components/Media/Item.tsx @@ -1,6 +1,6 @@ import { Messenger } from '@estruyf/vscode/dist/client'; import { Menu } from '@headlessui/react'; -import { ClipboardIcon, CodeIcon, EyeIcon, MusicNoteIcon, PencilIcon, PhotographIcon, PlusIcon, TrashIcon, VideoCameraIcon } from '@heroicons/react/outline'; +import { ClipboardIcon, CodeIcon, DocumentIcon, EyeIcon, MusicNoteIcon, PencilIcon, PhotographIcon, PlusIcon, TrashIcon, VideoCameraIcon } from '@heroicons/react/outline'; import { basename, dirname } from 'path'; import * as React from 'react'; import { useCallback, useEffect, useMemo } from 'react'; @@ -9,6 +9,7 @@ import { CustomScript } from '../../../helpers/CustomScript'; import { parseWinPath } from '../../../helpers/parseWinPath'; import { ScriptType } from '../../../models'; import { MediaInfo } from '../../../models/MediaPaths'; +import { FileIcon } from '../../../panelWebView/components/Icons/FileIcon'; import { DashboardMessage } from '../../DashboardMessage'; import { LightboxAtom, SelectedMediaFolderSelector, SettingsSelector, ViewDataSelector } from '../../state'; import { MenuItem, MenuItems } from '../Menu'; @@ -200,12 +201,39 @@ export const Item: React.FunctionComponent = ({media}: React.PropsWi return false; }, [media]); + const isImageFile = useCallback(() => { + if (media.mimeType?.startsWith("image/")) { + return true; + } + return false; + }, [media]); + + const renderMediaIcon = useMemo(() => { + if (isVideoFile()) { + return ; + } + + if (isAudioFile()) { + return ; + } + + if (isImageFile()) { + return ; + } + + return ; + }, [media]); + const renderMedia = useMemo(() => { if (isVideoFile() || isAudioFile()) { return null; } - return {basename(media.fsPath)}; + if (isImageFile()) { + return {basename(media.fsPath)}; + } + + return null; }, [media]); useEffect(() => { @@ -233,15 +261,7 @@ export const Item: React.FunctionComponent = ({media}: React.PropsWi