diff --git a/.changeset/curvy-clowns-design.md b/.changeset/curvy-clowns-design.md new file mode 100644 index 0000000000..52b41c35d0 --- /dev/null +++ b/.changeset/curvy-clowns-design.md @@ -0,0 +1,6 @@ +--- +"@gradio/chatbot": patch +"gradio": patch +--- + +fix:Ensure copy button on chatbot shows when appropriate diff --git a/js/chatbot/shared/ButtonPanel.svelte b/js/chatbot/shared/ButtonPanel.svelte index cf97d9d8f5..3b0f3f4838 100644 --- a/js/chatbot/shared/ButtonPanel.svelte +++ b/js/chatbot/shared/ButtonPanel.svelte @@ -11,13 +11,12 @@ export let message: Record; export let position: "right" | "left"; export let avatar: FileData | null; - export let show_download = false; + export let handle_action: (selected: string | null) => void; export let layout: "bubble" | "panel"; - $: show_copy = show_copy_button && message && message?.type === "text"; $: show_download = - (show_download && message?.value?.video?.url) || message?.value?.url; + show_copy_button && (message?.value?.video?.url || message?.value?.url); {#if show} diff --git a/js/chatbot/shared/ChatBot.svelte b/js/chatbot/shared/ChatBot.svelte index c42bb5370d..9141206730 100644 --- a/js/chatbot/shared/ChatBot.svelte +++ b/js/chatbot/shared/ChatBot.svelte @@ -22,6 +22,7 @@ import Pending from "./Pending.svelte"; import Component from "./Component.svelte"; import LikeButtons from "./ButtonPanel.svelte"; + import type { LoadedComponent } from "../../app/src/types"; export let _fetch: typeof fetch; export let load_component: Gradio["load_component"]; @@ -42,7 +43,7 @@ component_name; }); - const loaded_components = await Promise.all(components); + const loaded_components: LoadedComponent[] = await Promise.all(components); loaded_components.forEach((component, i) => { _components[names[i]] = component.default; }); @@ -341,10 +342,7 @@ handle_like(i, j, message, selected)} {likeable} @@ -352,7 +350,6 @@ {message} position={j === 0 ? "right" : "left"} avatar={avatar_images[j]} - show_download={true} {layout} />