chore: init monorepo snapshot
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
"use client";
|
||||
|
||||
import { useQuery } from "@tanstack/react-query";
|
||||
import type { DocumentSearchRequest, DocumentSearchResponse } from "@/types/search";
|
||||
|
||||
const fetchDocumentSearch = async (payload: DocumentSearchRequest): Promise<DocumentSearchResponse> => {
|
||||
const response = await fetch("/api/search/documents", {
|
||||
method: "POST",
|
||||
headers: { "Content-Type": "application/json" },
|
||||
body: JSON.stringify(payload),
|
||||
});
|
||||
|
||||
if (!response.ok) {
|
||||
const message = (await response.json().catch(() => null))?.error ?? "搜索失败,请稍后再试";
|
||||
throw new Error(message);
|
||||
}
|
||||
|
||||
return response.json() as Promise<DocumentSearchResponse>;
|
||||
};
|
||||
|
||||
export function useDocumentSearch(payload: DocumentSearchRequest | null, enabled: boolean) {
|
||||
return useQuery({
|
||||
queryKey: ["document-search", payload],
|
||||
queryFn: () => {
|
||||
if (!payload) {
|
||||
throw new Error("缺少搜索参数");
|
||||
}
|
||||
return fetchDocumentSearch(payload);
|
||||
},
|
||||
enabled: enabled && Boolean(payload?.workspaceId),
|
||||
staleTime: 30_000,
|
||||
gcTime: 60_000,
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user