diff --git a/surfsense_web/components/chat/ChatInterface.tsx b/surfsense_web/components/chat/ChatInterface.tsx index 0c2d7c5a7..d0d37fa04 100644 --- a/surfsense_web/components/chat/ChatInterface.tsx +++ b/surfsense_web/components/chat/ChatInterface.tsx @@ -26,8 +26,6 @@ interface ChatInterfaceContext { isChatPannelOpen: boolean; setIsChatPannelOpen: (value: boolean) => void; chat_id: string; - podcast: PodcastItem | null; - setPodcast: (value: PodcastItem) => void; chatDetails: ChatDetails | null; } diff --git a/surfsense_web/components/chat/ChatPanel/ChatPanelContainer.tsx b/surfsense_web/components/chat/ChatPanel/ChatPanelContainer.tsx index 2f460ee31..66dbc088a 100644 --- a/surfsense_web/components/chat/ChatPanel/ChatPanelContainer.tsx +++ b/surfsense_web/components/chat/ChatPanel/ChatPanelContainer.tsx @@ -19,7 +19,7 @@ export function ChatPanelContainer() { throw new Error("chatInterfaceContext must be used within a ChatProvider"); } - const { isChatPannelOpen, setIsChatPannelOpen, chat_id: chatId, setPodcast } = context; + const { isChatPannelOpen, setIsChatPannelOpen, chat_id: chatId } = context; const generatePodcast = async (request: GeneratePodcastRequest) => { try { @@ -42,10 +42,6 @@ export function ChatPanelContainer() { throw new Error(errorData.detail || "Failed to generate podcast"); } - const result = await response.json(); - - setPodcast(result); - toast.success(`Podcast generation started!`); } catch (error) { console.error("Error generating podcast:", error); diff --git a/surfsense_web/components/chat/ChatPanel/ChatPanelView.tsx b/surfsense_web/components/chat/ChatPanel/ChatPanelView.tsx index 0d2b86ab8..0521e070a 100644 --- a/surfsense_web/components/chat/ChatPanel/ChatPanelView.tsx +++ b/surfsense_web/components/chat/ChatPanel/ChatPanelView.tsx @@ -1,10 +1,10 @@ "use client"; import { Pencil, Podcast } from "lucide-react"; -import { useContext, useTransition } from "react"; +import { useCallback, useContext, useTransition } from "react"; import { cn } from "@/lib/utils"; import { chatInterfaceContext } from "../ChatInterface"; -import type { GeneratePodcastRequest } from "./actions"; +import type { GeneratePodcastRequest } from "./ChatPanelContainer"; import { ConfigModal } from "./ConfigModal"; interface ChatPanelViewProps { @@ -17,37 +17,40 @@ export function ChatPanelView(props: ChatPanelViewProps) { throw new Error("chatInterfaceContext must be used within a ChatProvider"); } - const { isChatPannelOpen, setIsChatPannelOpen } = context; + const { isChatPannelOpen, setIsChatPannelOpen, chatDetails } = context; const { generatePodcast } = props; - const [isGeneratingPodcast, startGeneratingPodcast] = useTransition(); - - const handleGeneratePodcast = () => { - startGeneratingPodcast(() => { - generatePodcast({ - type: "CHAT", - ids: [1], - search_space_id: 1, - }); + const handleGeneratePost = useCallback(async () => { + if (!chatDetails) return; + await generatePodcast({ + type: "CHAT", + ids: [chatDetails.id], + search_space_id: chatDetails.search_space_id, + podcast_title: chatDetails.title, }); - }; + }, [chatDetails]); return (