From e03fa83bf781828af62e5a9816fbbb378c361ed0 Mon Sep 17 00:00:00 2001 From: oobjectt Date: Thu, 8 Dec 2022 16:43:51 +0100 Subject: [PATCH 1/4] Fix issue #11 - Report user guide --- .../guide-tool/views/GuideToolOngoingView.tsx | 18 ++++++++++++++---- src/hooks/chat-history/useChatHistory.ts | 4 ++-- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/src/components/guide-tool/views/GuideToolOngoingView.tsx b/src/components/guide-tool/views/GuideToolOngoingView.tsx index 080de332f..b1b6dee26 100644 --- a/src/components/guide-tool/views/GuideToolOngoingView.tsx +++ b/src/components/guide-tool/views/GuideToolOngoingView.tsx @@ -1,8 +1,8 @@ -import { GuideSessionGetRequesterRoomMessageComposer, GuideSessionInviteRequesterMessageComposer, GuideSessionMessageMessageComposer, GuideSessionRequesterRoomMessageEvent, GuideSessionResolvedMessageComposer } from '@nitrots/nitro-renderer'; +import { GuideSessionGetRequesterRoomMessageComposer, GuideSessionInviteRequesterMessageComposer, GuideSessionMessageMessageComposer, GuideSessionMessageMessageEvent, GuideSessionRequesterRoomMessageEvent, GuideSessionResolvedMessageComposer } from '@nitrots/nitro-renderer'; import { FC, KeyboardEvent, useCallback, useEffect, useRef, useState } from 'react'; -import { GetSessionDataManager, GuideToolMessageGroup, LocalizeText, SendMessageComposer, TryVisitRoom } from '../../../api'; +import { ChatEntryType, ChatHistoryCurrentDate, GetSessionDataManager, GuideToolMessageGroup, LocalizeText, ReportType, SendMessageComposer, TryVisitRoom } from '../../../api'; import { Base, Button, ButtonGroup, Column, Flex, LayoutAvatarImageView, Text } from '../../../common'; -import { useMessageEvent } from '../../../hooks'; +import { useChatHistory, useHelp, useMessageEvent, useRoom } from '../../../hooks'; interface GuideToolOngoingViewProps { @@ -21,6 +21,9 @@ export const GuideToolOngoingView: FC = props => const { isGuide = false, userId = 0, userName = null, userFigure = null, isTyping = false, messageGroups = [] } = props; const [ messageText, setMessageText ] = useState(''); + const { addMessengerEntry } = useChatHistory(); + const { roomSession = null } = useRoom(); + const { report = null } = useHelp(); useEffect(() => { @@ -50,6 +53,13 @@ export const GuideToolOngoingView: FC = props => TryVisitRoom(parser.requesterRoomId); }); + useMessageEvent(GuideSessionMessageMessageEvent, event => + { + const parser = event.getParser(); + + addMessengerEntry({ id: -1, webId: parser.senderId, entityId: -1, name: userName, timestamp: ChatHistoryCurrentDate(), type: ChatEntryType.TYPE_IM, roomId: !roomSession ? 0 : roomSession.roomId, message: parser.chatMessage }); + }); + const sendMessage = useCallback(() => { if(!messageText || !messageText.length) return; @@ -83,7 +93,7 @@ export const GuideToolOngoingView: FC = props => { userName } { LocalizeText('guide.help.request.user.ongoing.guide.desc') } } - + diff --git a/src/hooks/chat-history/useChatHistory.ts b/src/hooks/chat-history/useChatHistory.ts index a2f3c3464..d1e632dae 100644 --- a/src/hooks/chat-history/useChatHistory.ts +++ b/src/hooks/chat-history/useChatHistory.ts @@ -97,8 +97,8 @@ const useChatHistoryState = () => addMessengerEntry({ id: -1, webId: parser.senderId, entityId: -1, name: '', message: parser.messageText, roomId: -1, timestamp: MessengerHistoryCurrentDate(), type: ChatEntryType.TYPE_IM }); }); - - return { addChatEntry, chatHistory, roomHistory, messengerHistory }; + + return { addChatEntry, chatHistory, roomHistory, messengerHistory, addMessengerEntry }; } export const useChatHistory = () => useBetween(useChatHistoryState); From 22696b93b9f41836e83f5b850cc4df5d5c6b6f4c Mon Sep 17 00:00:00 2001 From: oobjectt Date: Sat, 10 Dec 2022 21:06:56 +0100 Subject: [PATCH 2/4] Changed requested changes --- .../guide-tool/views/GuideToolOngoingView.tsx | 2 +- .../views/GuideToolUserFeedbackView.tsx | 16 +++++++++------- src/components/help/views/ReportSummaryView.tsx | 8 +++++++- .../help/views/SelectReportedChatsView.tsx | 1 + src/hooks/help/useHelp.ts | 3 +-- 5 files changed, 19 insertions(+), 11 deletions(-) diff --git a/src/components/guide-tool/views/GuideToolOngoingView.tsx b/src/components/guide-tool/views/GuideToolOngoingView.tsx index b1b6dee26..a2626063b 100644 --- a/src/components/guide-tool/views/GuideToolOngoingView.tsx +++ b/src/components/guide-tool/views/GuideToolOngoingView.tsx @@ -93,7 +93,7 @@ export const GuideToolOngoingView: FC = props => { userName } { LocalizeText('guide.help.request.user.ongoing.guide.desc') } } - + diff --git a/src/components/guide-tool/views/GuideToolUserFeedbackView.tsx b/src/components/guide-tool/views/GuideToolUserFeedbackView.tsx index 9ec72807e..87bf9b3c4 100644 --- a/src/components/guide-tool/views/GuideToolUserFeedbackView.tsx +++ b/src/components/guide-tool/views/GuideToolUserFeedbackView.tsx @@ -16,13 +16,15 @@ export const GuideToolUserFeedbackView: FC = pro return ( - - - { userName } - { LocalizeText('guide.help.request.user.feedback.guide.desc') } - - - + { userName && (userName.length > 0) && + + + { userName } + { LocalizeText('guide.help.request.user.feedback.guide.desc') } + + + + } { LocalizeText('guide.help.request.user.feedback.closed.title') } { LocalizeText('guide.help.request.user.feedback.closed.desc') } diff --git a/src/components/help/views/ReportSummaryView.tsx b/src/components/help/views/ReportSummaryView.tsx index 1aa04031f..6ee64e082 100644 --- a/src/components/help/views/ReportSummaryView.tsx +++ b/src/components/help/views/ReportSummaryView.tsx @@ -1,4 +1,4 @@ -import { CallForHelpFromForumMessageMessageComposer, CallForHelpFromForumThreadMessageComposer, CallForHelpFromIMMessageComposer, CallForHelpFromPhotoMessageComposer, CallForHelpMessageComposer } from '@nitrots/nitro-renderer'; +import { CallForHelpFromForumMessageMessageComposer, CallForHelpFromForumThreadMessageComposer, CallForHelpFromIMMessageComposer, CallForHelpFromPhotoMessageComposer, CallForHelpMessageComposer, GuideSessionReportMessageComposer } from '@nitrots/nitro-renderer'; import { FC } from 'react'; import { GetSessionDataManager, LocalizeText, ReportType, SendMessageComposer } from '../../../api'; import { Button, Column, Text } from '../../../common'; @@ -14,6 +14,7 @@ export const ReportSummaryView: FC<{}> = props => switch(activeReport.reportType) { + case ReportType.BULLY: case ReportType.EMERGENCY: case ReportType.ROOM: { @@ -38,6 +39,11 @@ export const ReportSummaryView: FC<{}> = props => case ReportType.PHOTO: SendMessageComposer(new CallForHelpFromPhotoMessageComposer(activeReport.extraData, activeReport.cfhTopic, activeReport.roomId, GetSessionDataManager().userId, activeReport.roomObjectId)); break; + case ReportType.GUIDE: + activeReport.reportedChats.forEach(entry => chats.push(entry.webId, entry.message)); + + SendMessageComposer(new GuideSessionReportMessageComposer(activeReport.message)); + break; } setActiveReport(null); diff --git a/src/components/help/views/SelectReportedChatsView.tsx b/src/components/help/views/SelectReportedChatsView.tsx index 8873f1673..37067048f 100644 --- a/src/components/help/views/SelectReportedChatsView.tsx +++ b/src/components/help/views/SelectReportedChatsView.tsx @@ -18,6 +18,7 @@ export const SelectReportedChatsView: FC<{}> = props => case ReportType.EMERGENCY: return chatHistory.filter(chat => (chat.type === ChatEntryType.TYPE_CHAT) && (chat.webId === activeReport.reportedUserId) && (chat.entityType === RoomObjectType.USER)); case ReportType.IM: + case ReportType.GUIDE: return messengerHistory.filter(chat => (chat.webId === activeReport.reportedUserId) && (chat.type === ChatEntryType.TYPE_IM)); } diff --git a/src/hooks/help/useHelp.ts b/src/hooks/help/useHelp.ts index 9a67fb7fd..14600b282 100644 --- a/src/hooks/help/useHelp.ts +++ b/src/hooks/help/useHelp.ts @@ -35,6 +35,7 @@ const useHelpState = () => case ReportType.BULLY: case ReportType.EMERGENCY: case ReportType.IM: + case ReportType.GUIDE: newReport.reportedUserId = options.reportedUserId; newReport.currentStep = ReportState.SELECT_CHATS; break; @@ -56,8 +57,6 @@ const useHelpState = () => break; case ReportType.PHOTO: break; - case ReportType.GUIDE: - break; } setActiveReport(newReport); From e5c782a14989308c41b1c207bbfa10e2908b4cfb Mon Sep 17 00:00:00 2001 From: oobjectt Date: Tue, 13 Dec 2022 01:58:20 +0100 Subject: [PATCH 3/4] Change ReportState to REPORT_SUMMARY --- src/hooks/help/useHelp.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/hooks/help/useHelp.ts b/src/hooks/help/useHelp.ts index 14600b282..996e8e34d 100644 --- a/src/hooks/help/useHelp.ts +++ b/src/hooks/help/useHelp.ts @@ -35,7 +35,6 @@ const useHelpState = () => case ReportType.BULLY: case ReportType.EMERGENCY: case ReportType.IM: - case ReportType.GUIDE: newReport.reportedUserId = options.reportedUserId; newReport.currentStep = ReportState.SELECT_CHATS; break; @@ -57,6 +56,10 @@ const useHelpState = () => break; case ReportType.PHOTO: break; + case ReportType.GUIDE: + newReport.reportedUserId = options.reportedUserId; + newReport.currentStep = ReportState.REPORT_SUMMARY; + break; } setActiveReport(newReport); From 2f69e5f2ae065c9970e512ec36d21dcc0dcaea52 Mon Sep 17 00:00:00 2001 From: oobjectt Date: Tue, 13 Dec 2022 20:15:56 +0100 Subject: [PATCH 4/4] Cleaned up unnecessary lines --- .../guide-tool/views/GuideToolOngoingView.tsx | 15 +++------------ src/components/help/views/ReportSummaryView.tsx | 5 +---- .../help/views/SelectReportedChatsView.tsx | 1 - src/hooks/chat-history/useChatHistory.ts | 2 +- 4 files changed, 5 insertions(+), 18 deletions(-) diff --git a/src/components/guide-tool/views/GuideToolOngoingView.tsx b/src/components/guide-tool/views/GuideToolOngoingView.tsx index a2626063b..b85c15ef7 100644 --- a/src/components/guide-tool/views/GuideToolOngoingView.tsx +++ b/src/components/guide-tool/views/GuideToolOngoingView.tsx @@ -1,8 +1,8 @@ -import { GuideSessionGetRequesterRoomMessageComposer, GuideSessionInviteRequesterMessageComposer, GuideSessionMessageMessageComposer, GuideSessionMessageMessageEvent, GuideSessionRequesterRoomMessageEvent, GuideSessionResolvedMessageComposer } from '@nitrots/nitro-renderer'; +import { GuideSessionGetRequesterRoomMessageComposer, GuideSessionInviteRequesterMessageComposer, GuideSessionMessageMessageComposer, GuideSessionRequesterRoomMessageEvent, GuideSessionResolvedMessageComposer } from '@nitrots/nitro-renderer'; import { FC, KeyboardEvent, useCallback, useEffect, useRef, useState } from 'react'; -import { ChatEntryType, ChatHistoryCurrentDate, GetSessionDataManager, GuideToolMessageGroup, LocalizeText, ReportType, SendMessageComposer, TryVisitRoom } from '../../../api'; +import { GetSessionDataManager, GuideToolMessageGroup, LocalizeText, ReportType, SendMessageComposer, TryVisitRoom } from '../../../api'; import { Base, Button, ButtonGroup, Column, Flex, LayoutAvatarImageView, Text } from '../../../common'; -import { useChatHistory, useHelp, useMessageEvent, useRoom } from '../../../hooks'; +import { useHelp, useMessageEvent } from '../../../hooks'; interface GuideToolOngoingViewProps { @@ -21,8 +21,6 @@ export const GuideToolOngoingView: FC = props => const { isGuide = false, userId = 0, userName = null, userFigure = null, isTyping = false, messageGroups = [] } = props; const [ messageText, setMessageText ] = useState(''); - const { addMessengerEntry } = useChatHistory(); - const { roomSession = null } = useRoom(); const { report = null } = useHelp(); useEffect(() => @@ -53,13 +51,6 @@ export const GuideToolOngoingView: FC = props => TryVisitRoom(parser.requesterRoomId); }); - useMessageEvent(GuideSessionMessageMessageEvent, event => - { - const parser = event.getParser(); - - addMessengerEntry({ id: -1, webId: parser.senderId, entityId: -1, name: userName, timestamp: ChatHistoryCurrentDate(), type: ChatEntryType.TYPE_IM, roomId: !roomSession ? 0 : roomSession.roomId, message: parser.chatMessage }); - }); - const sendMessage = useCallback(() => { if(!messageText || !messageText.length) return; diff --git a/src/components/help/views/ReportSummaryView.tsx b/src/components/help/views/ReportSummaryView.tsx index 6ee64e082..c387ffe47 100644 --- a/src/components/help/views/ReportSummaryView.tsx +++ b/src/components/help/views/ReportSummaryView.tsx @@ -14,7 +14,6 @@ export const ReportSummaryView: FC<{}> = props => switch(activeReport.reportType) { - case ReportType.BULLY: case ReportType.EMERGENCY: case ReportType.ROOM: { @@ -40,9 +39,7 @@ export const ReportSummaryView: FC<{}> = props => SendMessageComposer(new CallForHelpFromPhotoMessageComposer(activeReport.extraData, activeReport.cfhTopic, activeReport.roomId, GetSessionDataManager().userId, activeReport.roomObjectId)); break; case ReportType.GUIDE: - activeReport.reportedChats.forEach(entry => chats.push(entry.webId, entry.message)); - - SendMessageComposer(new GuideSessionReportMessageComposer(activeReport.message)); + SendMessageComposer(new GuideSessionReportMessageComposer('')); break; } diff --git a/src/components/help/views/SelectReportedChatsView.tsx b/src/components/help/views/SelectReportedChatsView.tsx index 37067048f..8873f1673 100644 --- a/src/components/help/views/SelectReportedChatsView.tsx +++ b/src/components/help/views/SelectReportedChatsView.tsx @@ -18,7 +18,6 @@ export const SelectReportedChatsView: FC<{}> = props => case ReportType.EMERGENCY: return chatHistory.filter(chat => (chat.type === ChatEntryType.TYPE_CHAT) && (chat.webId === activeReport.reportedUserId) && (chat.entityType === RoomObjectType.USER)); case ReportType.IM: - case ReportType.GUIDE: return messengerHistory.filter(chat => (chat.webId === activeReport.reportedUserId) && (chat.type === ChatEntryType.TYPE_IM)); } diff --git a/src/hooks/chat-history/useChatHistory.ts b/src/hooks/chat-history/useChatHistory.ts index d1e632dae..65cdd6724 100644 --- a/src/hooks/chat-history/useChatHistory.ts +++ b/src/hooks/chat-history/useChatHistory.ts @@ -98,7 +98,7 @@ const useChatHistoryState = () => addMessengerEntry({ id: -1, webId: parser.senderId, entityId: -1, name: '', message: parser.messageText, roomId: -1, timestamp: MessengerHistoryCurrentDate(), type: ChatEntryType.TYPE_IM }); }); - return { addChatEntry, chatHistory, roomHistory, messengerHistory, addMessengerEntry }; + return { addChatEntry, chatHistory, roomHistory, messengerHistory }; } export const useChatHistory = () => useBetween(useChatHistoryState);