From a998a5720cda9ba374de5119014e5bc9cbcf0c18 Mon Sep 17 00:00:00 2001 From: wukko Date: Sun, 22 Jun 2025 15:23:39 +0600 Subject: [PATCH] web/queue: refactor media icon selection --- .../components/queue/ProcessingQueueItem.svelte | 2 ++ web/src/lib/task-manager/queue.ts | 17 ++++------------- web/src/lib/types/workers.ts | 2 +- 3 files changed, 7 insertions(+), 14 deletions(-) diff --git a/web/src/components/queue/ProcessingQueueItem.svelte b/web/src/components/queue/ProcessingQueueItem.svelte index 5ab4e03d..c8c2e79c 100644 --- a/web/src/components/queue/ProcessingQueueItem.svelte +++ b/web/src/components/queue/ProcessingQueueItem.svelte @@ -21,11 +21,13 @@ import IconDownload from "@tabler/icons-svelte/IconDownload.svelte"; import IconExclamationCircle from "@tabler/icons-svelte/IconExclamationCircle.svelte"; + import IconFile from "@tabler/icons-svelte/IconFile.svelte"; import IconMovie from "@tabler/icons-svelte/IconMovie.svelte"; import IconMusic from "@tabler/icons-svelte/IconMusic.svelte"; import IconPhoto from "@tabler/icons-svelte/IconPhoto.svelte"; const itemIcons = { + file: IconFile, video: IconMovie, audio: IconMusic, image: IconPhoto, diff --git a/web/src/lib/task-manager/queue.ts b/web/src/lib/task-manager/queue.ts index db0b9531..164be632 100644 --- a/web/src/lib/task-manager/queue.ts +++ b/web/src/lib/task-manager/queue.ts @@ -8,14 +8,13 @@ import { uuid } from "$lib/util"; import type { CobaltQueueItem } from "$lib/types/queue"; import type { CobaltCurrentTasks } from "$lib/types/task-manager"; -import type { CobaltPipelineItem, CobaltPipelineResultFileType } from "$lib/types/workers"; +import { resultFileTypes, type CobaltPipelineItem, type CobaltPipelineResultFileType } from "$lib/types/workers"; import type { CobaltLocalProcessingResponse, CobaltSaveRequestBody } from "$lib/types/api"; export const getMediaType = (type: string) => { - const kind = type.split('/')[0]; + const kind = type.split('/')[0] as CobaltPipelineResultFileType; - // can't use .includes() here for some reason - if (kind === "video" || kind === "audio" || kind === "image") { + if (resultFileTypes.includes(kind)) { return kind; } } @@ -55,14 +54,6 @@ export const createRemuxPipeline = (file: File) => { } } -const mediaIcons: { [key: string]: CobaltPipelineResultFileType } = { - merge: "video", - mute: "video", - audio: "audio", - gif: "image", - remux: "video" -} - const makeRemuxArgs = (info: CobaltLocalProcessingResponse) => { const ffargs = ["-c:v", "copy"]; @@ -211,7 +202,7 @@ export const createSavePipeline = ( originalRequest: request, filename: info.output.filename, mimeType: info.output.type, - mediaType: mediaIcons[info.type], + mediaType: getMediaType(info.output.type) || "file", }); openQueuePopover(); diff --git a/web/src/lib/types/workers.ts b/web/src/lib/types/workers.ts index 56e44baa..b65abf69 100644 --- a/web/src/lib/types/workers.ts +++ b/web/src/lib/types/workers.ts @@ -1,7 +1,7 @@ import type { FileInfo } from "$lib/types/libav"; import type { UUID } from "./queue"; -export const resultFileTypes = ["video", "audio", "image"] as const; +export const resultFileTypes = ["video", "audio", "image", "file"] as const; export type CobaltPipelineResultFileType = typeof resultFileTypes[number];