import { useQuery } from "@tanstack/react-query"; import { useMemo } from "react"; import { useThread } from "@/components/workspace/messages/context"; import { loadArtifactContent, loadArtifactContentFromToolCall } from "./loader"; export function useArtifactContent({ filepath, threadId, enabled, }: { filepath: string; threadId: string; enabled?: boolean; }) { const isWriteFile = useMemo(() => { return filepath.startsWith("write-file:"); }, [filepath]); const { thread } = useThread(); const content = useMemo(() => { if (isWriteFile) { return loadArtifactContentFromToolCall({ url: filepath, thread }); } return null; }, [filepath, isWriteFile, thread]); const { data, isLoading, error } = useQuery({ queryKey: ["artifact", filepath, threadId], queryFn: () => { return loadArtifactContent({ filepath, threadId }); }, enabled, }); return { content: isWriteFile ? content : data, isLoading, error }; }