From 6001000a79a0fe7faac92a19a53abc6c04d04d9d Mon Sep 17 00:00:00 2001 From: Wasim Yousef Said Date: Mon, 22 Jun 2026 12:52:11 +0200 Subject: [PATCH] Studio: restyle export source selector (#6562) --- studio/frontend/src/components/ui/tabs.tsx | 25 +++- .../src/features/export/export-page.tsx | 107 ++++++++++-------- 2 files changed, 81 insertions(+), 51 deletions(-) diff --git a/studio/frontend/src/components/ui/tabs.tsx b/studio/frontend/src/components/ui/tabs.tsx index 6f150cdf60..1e5381ab18 100644 --- a/studio/frontend/src/components/ui/tabs.tsx +++ b/studio/frontend/src/components/ui/tabs.tsx @@ -66,25 +66,38 @@ export const tabsListVariants = cva( export function TabsList({ className, variant = "default", + unstyled = false, ...props }: React.ComponentProps & - VariantProps): React.ReactElement { + VariantProps & { + unstyled?: boolean; + }): React.ReactElement { return ( ); } +type TabsTriggerProps = React.ComponentProps & { + indicatorClassName?: string; +}; + export function TabsTrigger({ className, + indicatorClassName, value, children, ...props -}: React.ComponentProps): React.ReactElement { +}: TabsTriggerProps): React.ReactElement { const ctx = React.useContext(TabsContext); const isActive = ctx.value === value; @@ -106,7 +119,11 @@ export function TabsTrigger({ {isActive && ( { @@ -368,18 +373,22 @@ export function ExportPage() { } }, [isAdapter, isQuantized, exportMethod]); - const handleSourceModeSwitch = useCallback( - (next: "checkpoint" | "model") => { - setSourceMode(next); - if (next === "model") { - setExportMethod("gguf"); - } - setSelectedSourceModel(null); - setLocalModelInput(""); - setModelInput(""); - }, - [], - ); + const handleSourceTabChange = useCallback((next: string) => { + if (next === "checkpoint") { + setSourceMode("checkpoint"); + } else if (next === "hf" || next === "local") { + setSourceMode("model"); + setModelSource(next); + setExportMethod("gguf"); + } else { + return; + } + setSelectedSourceModel(null); + setLocalModelInput(""); + setModelInput(""); + hfModelInputRef.current = ""; + localModelInputRef.current = ""; + }, []); useEffect(() => { setSelectedSourceModel(null); @@ -676,10 +685,10 @@ export function ExportPage() { <> {/* Top row: Dropdowns + metadata | Guide */}
-
-
+
+
{sourceMode === "checkpoint" ? (
+