blob: 4a6807764f58111b1ab59c269bf88b1601c2edd1 [file] [log] [blame]
import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
import axios from "axios"
export const useConversationQuery = (accountId, conversationId) => {
return useQuery(
["conversation", accountId, conversationId],
() => fetchConversation(accountId, conversationId),
{
"enabled": !!(accountId && conversationId),
}
)
}
export const useMessagesQuery = (accountId, conversationId) => {
return useQuery(
["messages", accountId, conversationId],
() => fetchMessages(accountId, conversationId),
{
"enabled": !!(accountId && conversationId),
}
)
}
export const useSendMessageMutation = (accountId, conversationId) => {
const queryClient = useQueryClient();
return useMutation(
(message) => (
axios.post(`/api/accounts/${accountId}/conversations/${conversationId}`, {message})
),
{
"onSuccess": () => queryClient.invalidateQueries(["messages", accountId, conversationId]),
}
)
}
const fetchConversation = (accountId, conversationId) => (
axios
.get(`/api/accounts/${accountId}/conversations/${conversationId}`)
.then((result) => result.data)
)
const fetchMessages = (accountId, conversationId) => (
axios
.get(`/api/accounts/${accountId}/conversations/${conversationId}/messages`)
.then((result) => result.data)
)