From 7cb698329451b05e4c6ddafefe079df5ea9ebc42 Mon Sep 17 00:00:00 2001 From: Maze Winther Date: Tue, 14 Apr 2026 03:17:23 +0200 Subject: [PATCH] refactor: replace captions tab switcher with import action button --- .../editor/panels/assets/views/captions.tsx | 153 +++++++----------- 1 file changed, 60 insertions(+), 93 deletions(-) diff --git a/apps/web/src/components/editor/panels/assets/views/captions.tsx b/apps/web/src/components/editor/panels/assets/views/captions.tsx index 0342d1d6..488875a8 100644 --- a/apps/web/src/components/editor/panels/assets/views/captions.tsx +++ b/apps/web/src/components/editor/panels/assets/views/captions.tsx @@ -7,7 +7,6 @@ import { SelectTrigger, SelectValue, } from "@/components/ui/select"; -import { Tabs, TabsList, TabsTrigger } from "@/components/ui/tabs"; import { useReducer, useRef, useState } from "react"; import { extractTimelineAudio } from "@/lib/media/mediabunny"; import { useEditor } from "@/hooks/use-editor"; @@ -32,8 +31,8 @@ import { SectionField, SectionFields, } from "@/components/section"; - -type CaptionsView = "generate" | "import"; +import { CloudUploadIcon } from "@hugeicons/core-free-icons"; +import { HugeiconsIcon } from "@hugeicons/react"; type ProcessingState = | { status: "idle"; error: string | null; warnings: string[] } @@ -65,7 +64,6 @@ function processingReducer( } export function Captions() { - const [view, setView] = useState("generate"); const [selectedLanguage, setSelectedLanguage] = useState("auto"); const [processing, dispatch] = useReducer(processingReducer, IDLE_STATE); @@ -207,17 +205,20 @@ export function Captions() { return ( setView(value as CaptionsView)} + } ref={containerRef} > @@ -228,88 +229,54 @@ export function Captions() { className="hidden" onChange={(event) => void handleFileChange({ event })} /> - {view === "generate" && ( -
- - - - - - - - - {error && ( -
-

{error}

-
- )} -
-
- )} - {view === "import" && ( -
- -

- Import an existing .srt or .ass subtitle - file into the timeline. -

- - {error && ( -
-

{error}

-
- )} - {warnings.length > 0 && ( -
-
    - {warnings.map((warning) => ( -
  • {warning}
  • +
    + + + + + + + + + {error && ( +
    +

    {error}

    +
    + )} + {warnings.length > 0 && ( +
    +
      + {warnings.map((warning) => ( +
    • {warning}
    • + ))} +
    +
    + )} +
    +
    ); }