diff --git a/src/components/mod-tools/views/room/ModToolsChatlogView.tsx b/src/components/mod-tools/views/room/ModToolsChatlogView.tsx index 2f2d684..137d225 100644 --- a/src/components/mod-tools/views/room/ModToolsChatlogView.tsx +++ b/src/components/mod-tools/views/room/ModToolsChatlogView.tsx @@ -1,9 +1,9 @@ import { ChatRecordData, GetRoomChatlogMessageComposer, RoomChatlogEvent } from '@nitrots/nitro-renderer'; -import { FC } from 'react'; +import { FC, useEffect, useState } from 'react'; import { FaSpinner } from 'react-icons/fa'; -import { LocalizeText } from '../../../../api'; -import { useNitroQuery } from '../../../../api/nitro-query'; +import { LocalizeText, SendMessageComposer } from '../../../../api'; import { DraggableWindowPosition, NitroCardContentView, NitroCardHeaderView, NitroCardView } from '../../../../common'; +import { useMessageEvent } from '../../../../hooks'; import { ChatlogView } from '../chatlog/ChatlogView'; interface ModToolsChatlogViewProps @@ -15,16 +15,22 @@ interface ModToolsChatlogViewProps export const ModToolsChatlogView: FC = props => { const { roomId = null, onCloseClick = null } = props; + const [ roomChatlog, setRoomChatlog ] = useState(null); - const { data: roomChatlog } = useNitroQuery({ - key: [ 'nitro', 'mod-tools', 'room-chatlog', roomId ], - request: () => new GetRoomChatlogMessageComposer(roomId), - parser: RoomChatlogEvent, - accept: e => e.getParser()?.data.roomId === roomId, - select: e => e.getParser().data, - enabled: roomId !== null + useMessageEvent(RoomChatlogEvent, event => + { + const parser = event.getParser(); + + if(!parser || parser.data.roomId !== roomId) return; + + setRoomChatlog(parser.data); }); + useEffect(() => + { + SendMessageComposer(new GetRoomChatlogMessageComposer(roomId)); + }, [ roomId ]); + return ( diff --git a/src/components/mod-tools/views/tickets/CfhChatlogView.tsx b/src/components/mod-tools/views/tickets/CfhChatlogView.tsx index a26e113..e80b70a 100644 --- a/src/components/mod-tools/views/tickets/CfhChatlogView.tsx +++ b/src/components/mod-tools/views/tickets/CfhChatlogView.tsx @@ -1,9 +1,9 @@ import { CfhChatlogData, CfhChatlogEvent, GetCfhChatlogMessageComposer } from '@nitrots/nitro-renderer'; -import { FC } from 'react'; +import { FC, useEffect, useState } from 'react'; import { FaSpinner } from 'react-icons/fa'; -import { LocalizeText } from '../../../../api'; -import { useNitroQuery } from '../../../../api/nitro-query'; +import { LocalizeText, SendMessageComposer } from '../../../../api'; import { DraggableWindowPosition, NitroCardContentView, NitroCardHeaderView, NitroCardView } from '../../../../common'; +import { useMessageEvent } from '../../../../hooks'; import { ChatlogView } from '../chatlog/ChatlogView'; interface CfhChatlogViewProps @@ -15,16 +15,22 @@ interface CfhChatlogViewProps export const CfhChatlogView: FC = props => { const { onCloseClick = null, issueId = null } = props; + const [ chatlogData, setChatlogData ] = useState(null); - const { data: chatlogData } = useNitroQuery({ - key: [ 'nitro', 'mod-tools', 'cfh-chatlog', issueId ], - request: () => new GetCfhChatlogMessageComposer(issueId), - parser: CfhChatlogEvent, - accept: e => e.getParser()?.data.issueId === issueId, - select: e => e.getParser().data, - enabled: issueId !== null + useMessageEvent(CfhChatlogEvent, event => + { + const parser = event.getParser(); + + if(!parser || parser.data.issueId !== issueId) return; + + setChatlogData(parser.data); }); + useEffect(() => + { + SendMessageComposer(new GetCfhChatlogMessageComposer(issueId)); + }, [ issueId ]); + return (