Last commit not found
import { useParams } from "react-router"; | |
import React from "react"; | |
import posthog from "posthog-js"; | |
import { AgentControlBar } from "./agent-control-bar"; | |
import { AgentStatusBar } from "./agent-status-bar"; | |
import { SecurityLock } from "./security-lock"; | |
import { useUserConversation } from "#/hooks/query/use-user-conversation"; | |
import { ConversationCard } from "../conversation-panel/conversation-card"; | |
import { DownloadModal } from "#/components/shared/download-modal"; | |
interface ControlsProps { | |
setSecurityOpen: (isOpen: boolean) => void; | |
showSecurityLock: boolean; | |
} | |
export function Controls({ setSecurityOpen, showSecurityLock }: ControlsProps) { | |
const params = useParams(); | |
const { data: conversation } = useUserConversation( | |
params.conversationId ?? null, | |
); | |
const [downloading, setDownloading] = React.useState(false); | |
const handleDownloadWorkspace = () => { | |
posthog.capture("download_workspace_button_clicked"); | |
setDownloading(true); | |
}; | |
return ( | |
<div className="flex items-center justify-between"> | |
<div className="flex items-center gap-2"> | |
<AgentControlBar /> | |
<AgentStatusBar /> | |
{showSecurityLock && ( | |
<SecurityLock onClick={() => setSecurityOpen(true)} /> | |
)} | |
</div> | |
<ConversationCard | |
variant="compact" | |
onDownloadWorkspace={handleDownloadWorkspace} | |
title={conversation?.title ?? ""} | |
lastUpdatedAt={conversation?.created_at ?? ""} | |
selectedRepository={conversation?.selected_repository ?? null} | |
status={conversation?.status} | |
/> | |
<DownloadModal | |
initialPath="" | |
onClose={() => setDownloading(false)} | |
isOpen={downloading} | |
/> | |
</div> | |
); | |
} | |