import type { SearchRelease } from "@umt/contracts"; import { usePlanFromSearch } from "~/api/search.ts"; import { openAgentDrawer } from "~/components/agent/agent-store.ts"; import { ManualDownloadDialog } from "~/components/downloads/manual-download-dialog.tsx"; export function delegateToAgent(release: SearchRelease) { openAgentDrawer({ label: `资源:${release.title}`, releaseId: release.sourceReleaseId ?? undefined, entityId: release.entity?.id, siteId: release.siteId, goal: `判断资源「${release.title}」是否值得下载;合适就按手动下载流程提交`, }); } export function SearchDownloadDialog({ release, open, onOpenChange, }: { release: SearchRelease; open: boolean; onOpenChange: (open: boolean) => void; }) { const submit = usePlanFromSearch(); return ( delegateToAgent(release)} submit={(options) => submit.mutateAsync({ ...options, siteId: release.siteId, siteReleaseId: release.siteReleaseId }) } /> ); }