| 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); |