nexus/ui/src/hooks/useChatBookmarks.ts
Nexus Dev d56e19c7b4 feat(24-02): API client methods and React Query hooks for search, bookmarks, branches
- Add searchMessages, toggleBookmark, getBookmarks, branchConversation, listBranches, exportConversation to chatApi
- Create useChatSearch hook with debounced FTS, placeholderData, 30s staleTime
- Create useChatBookmarks and useToggleBookmark with cache invalidation for bookmarks and search queries
2026-04-04 03:55:48 +00:00

33 lines
1,020 B
TypeScript

import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
import { chatApi } from "../api/chat";
export function useChatBookmarks(companyId: string | null, conversationId?: string) {
const query = useQuery({
queryKey: ["chat", "bookmarks", companyId, conversationId],
queryFn: () => chatApi.getBookmarks(companyId!, conversationId),
enabled: !!companyId,
});
return {
data: query.data,
isLoading: query.isLoading,
};
}
export function useToggleBookmark() {
const queryClient = useQueryClient();
const mutation = useMutation({
mutationFn: ({ conversationId, messageId }: { conversationId: string; messageId: string }) =>
chatApi.toggleBookmark(conversationId, messageId),
onSuccess: () => {
void queryClient.invalidateQueries({ queryKey: ["chat", "bookmarks"] });
void queryClient.invalidateQueries({ queryKey: ["chat", "search"] });
},
});
return {
toggleBookmark: mutation.mutate,
isPending: mutation.isPending,
};
}