diff --git a/app/soapbox/features/chats/components/chat-box.tsx b/app/soapbox/features/chats/components/chat-box.tsx index 2c7b4585d..ca9fa1748 100644 --- a/app/soapbox/features/chats/components/chat-box.tsx +++ b/app/soapbox/features/chats/components/chat-box.tsx @@ -41,7 +41,7 @@ const ChatBox: React.FC = ({ chat, onSetInputRef, autosize }) => { const chatMessageIds = useAppSelector(state => state.chat_message_lists.get(chat.id, ImmutableOrderedSet())); const account = useOwnAccount(); - const { createChatMessage, markChatAsRead, acceptChat } = useChat(chat.id); + const { createChatMessage, markChatAsRead, acceptChat, deleteChat } = useChat(chat.id); const [content, setContent] = useState(''); const [attachment, setAttachment] = useState(undefined); @@ -241,7 +241,15 @@ const ChatBox: React.FC = ({ chat, onSetInputRef, autosize }) => { - + + diff --git a/app/soapbox/queries/chats.ts b/app/soapbox/queries/chats.ts index a16f593af..c8ac84651 100644 --- a/app/soapbox/queries/chats.ts +++ b/app/soapbox/queries/chats.ts @@ -111,7 +111,15 @@ const useChat = (chatId: string) => { }, }); - return { createChatMessage, markChatAsRead, deleteChatMessage, acceptChat }; + const deleteChat = useMutation(() => api.delete(`/api/v1/pleroma/chats/${chatId}`), { + onSuccess(response) { + setChat(null); + queryClient.invalidateQueries(['chats', 'messages', chatId]); + queryClient.invalidateQueries(['chats']); + }, + }); + + return { createChatMessage, markChatAsRead, deleteChatMessage, acceptChat, deleteChat }; }; export { useChat, useChats, useChatMessages };