"use client"; import { AlertCircle, Pencil, Podcast, RefreshCw } from "lucide-react"; import { useCallback, useContext, useTransition } from "react"; import { cn } from "@/lib/utils"; import { chatInterfaceContext } from "../ChatInterface"; import { getPodcastStalenessMessage, isPodcastStale } from "../PodcastUtils"; import type { GeneratePodcastRequest } from "./ChatPanelContainer"; import { ConfigModal } from "./ConfigModal"; interface ChatPanelViewProps { generatePodcast: (request: GeneratePodcastRequest) => Promise; } export function ChatPanelView(props: ChatPanelViewProps) { const context = useContext(chatInterfaceContext); if (!context) { throw new Error("chatInterfaceContext must be used within a ChatProvider"); } const { isChatPannelOpen, setIsChatPannelOpen, chatDetails, podcast } = context; const { generatePodcast } = props; // Check if podcast is stale const podcastIsStale = podcast && chatDetails && isPodcastStale(chatDetails.state_version, podcast.chat_state_version); 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, generatePodcast]); console.log("podcastIsStale", podcastIsStale); return (
{isChatPannelOpen ? (
{/* Show stale podcast warning if applicable */} {podcastIsStale && (

Podcast is outdated

{getPodcastStalenessMessage( chatDetails?.state_version || 0, podcast?.chat_state_version )}

)} {/* Generate/Regenerate button */}
) : ( )}
); }