diff --git a/src/api/nitro/room/widgets/handlers/RoomWidgetInfostandHandler.ts b/src/api/nitro/room/widgets/handlers/RoomWidgetInfostandHandler.ts
index e86aba4e..be1d8608 100644
--- a/src/api/nitro/room/widgets/handlers/RoomWidgetInfostandHandler.ts
+++ b/src/api/nitro/room/widgets/handlers/RoomWidgetInfostandHandler.ts
@@ -2,6 +2,7 @@ import { IFurnitureData, NitroEvent, ObjectDataFactory, PetFigureData, PetRespec
import { GetNitroInstance, GetRoomEngine, GetSessionDataManager, IsOwnerOfFurniture } from '../../../..';
import { InventoryTradeRequestEvent, WiredSelectObjectEvent } from '../../../../../events';
import { FriendsSendFriendRequestEvent } from '../../../../../events/friends/FriendsSendFriendRequestEvent';
+import { HelpReportUserEvent } from '../../../../../events/help/HelpReportUserEvent';
import { dispatchUiEvent } from '../../../../../hooks/events';
import { SendMessageHook } from '../../../../../hooks/messages';
import { PetSupplementEnum } from '../../../../../views/room/widgets/avatar-info/common/PetSupplementEnum';
@@ -164,6 +165,7 @@ export class RoomWidgetInfostandHandler extends RoomWidgetHandler
case RoomWidgetUserActionMessage.REPORT:
return;
case RoomWidgetUserActionMessage.REPORT_CFH_OTHER:
+ dispatchUiEvent(new HelpReportUserEvent(userId));
return;
case RoomWidgetUserActionMessage.AMBASSADOR_ALERT_USER:
this.container.roomSession.sendAmbassadorAlertMessage(userId);
diff --git a/src/events/help/HelpReportUserEvent.ts b/src/events/help/HelpReportUserEvent.ts
index 4af418af..b4711b76 100644
--- a/src/events/help/HelpReportUserEvent.ts
+++ b/src/events/help/HelpReportUserEvent.ts
@@ -5,23 +5,16 @@ export class HelpReportUserEvent extends HelpEvent
public static REPORT_USER: string = 'HCE_HELP_CENTER_REPORT_USER';
private _reportedUserId: number;
- private _reportedUsername: string;
- constructor(userId: number, username: string)
+ constructor(userId: number)
{
super(HelpReportUserEvent.REPORT_USER);
this._reportedUserId = userId;
- this._reportedUsername = username;
}
public get reportedUserId(): number
{
return this._reportedUserId;
}
-
- public get reportedUsername(): string
- {
- return this._reportedUsername;
- }
}
diff --git a/src/views/help/HelpView.scss b/src/views/help/HelpView.scss
index 927c1cdc..f7f513f8 100644
--- a/src/views/help/HelpView.scss
+++ b/src/views/help/HelpView.scss
@@ -1,5 +1,5 @@
.nitro-help {
- height: 400px;
+ height: 430px;
width: 300px;
.index-image {
diff --git a/src/views/help/views/SelectReportedChatsView.tsx b/src/views/help/views/SelectReportedChatsView.tsx
index 67658015..ce1080b1 100644
--- a/src/views/help/views/SelectReportedChatsView.tsx
+++ b/src/views/help/views/SelectReportedChatsView.tsx
@@ -45,14 +45,25 @@ export const SelectReportedChatsView: FC<{}> = props =>
setHelpReportState(reportState);
}, [helpReportState, selectedChats, setHelpReportState]);
+
+ const back = useCallback(() =>
+ {
+ const reportState = Object.assign({}, helpReportState);
+ reportState.currentStep = --reportState.currentStep;
+ setHelpReportState(reportState);
+ }, [helpReportState, setHelpReportState]);
return (
<>
{LocalizeText('help.emergency.chat_report.subtitle')}
-
{LocalizeText('help.emergency.chat_report.description')}
+ { userChats.length > 0 &&
+
{LocalizeText('help.emergency.chat_report.description')}
+ }
-
+ {
+ (userChats.length === 0) && {LocalizeText('help.cfh.error.no_user_data')}
+ }
{ userChats.length > 0 &&
<>
@@ -65,7 +76,11 @@ export const SelectReportedChatsView: FC<{}> = props =>
)
})}
-
+
+
+
+
+
>
}
>
diff --git a/src/views/help/views/SelectReportedUserView.tsx b/src/views/help/views/SelectReportedUserView.tsx
index 456558f6..7f9aefdb 100644
--- a/src/views/help/views/SelectReportedUserView.tsx
+++ b/src/views/help/views/SelectReportedUserView.tsx
@@ -1,6 +1,6 @@
import { RoomObjectType } from '@nitrots/nitro-renderer';
import { FC, useCallback, useMemo, useState } from 'react';
-import { LocalizeText } from '../../../api';
+import { GetSessionDataManager, LocalizeText } from '../../../api';
import { NitroCardGridItemView, NitroCardGridView } from '../../../layout';
import { GetChatHistory } from '../../chat-history/common/GetChatHistory';
import { ChatEntryType } from '../../chat-history/context/ChatHistoryContext.types';
@@ -19,7 +19,7 @@ export const SelectReportedUserView: FC<{}> = props =>
GetChatHistory().chats
.forEach(chat =>
{
- if((chat.type === ChatEntryType.TYPE_CHAT) && (chat.entityType === RoomObjectType.USER))//todo: remove own chats
+ if((chat.type === ChatEntryType.TYPE_CHAT) && (chat.entityType === RoomObjectType.USER) && (chat.entityId !== GetSessionDataManager().userId))
{
if(!users.has(chat.entityId))
{
@@ -47,6 +47,13 @@ export const SelectReportedUserView: FC<{}> = props =>
else setSelectedUserId(userId);
}, [selectedUserId]);
+ const back = useCallback(() =>
+ {
+ const reportState = Object.assign({}, helpReportState);
+ reportState.currentStep = --reportState.currentStep;
+ setHelpReportState(reportState);
+ }, [helpReportState, setHelpReportState]);
+
return (
<>
@@ -63,14 +70,17 @@ export const SelectReportedUserView: FC<{}> = props =>
{availableUsers.map((user, index) =>
{
return (
-
selectUser(user.id)} itemActive={( selectedUserId === user.id)}>
+ selectUser(user.id)} itemActive={(selectedUserId === user.id)}>
)
})}
-
+
+
+
+
>
}
>
diff --git a/src/views/help/views/SelectTopicView.tsx b/src/views/help/views/SelectTopicView.tsx
index da0dec3b..654f6cc3 100644
--- a/src/views/help/views/SelectTopicView.tsx
+++ b/src/views/help/views/SelectTopicView.tsx
@@ -6,8 +6,8 @@ import { useHelpContext } from '../context/HelpContext';
export const SelectTopicView: FC<{}> = props =>
{
const { helpReportState = null, setHelpReportState = null } = useHelpContext();
- const [ selectedCategory, setSelectedCategory ] = useState(-1);
- const [ selectedTopic, setSelectedTopic ] = useState(-1);
+ const [selectedCategory, setSelectedCategory] = useState(-1);
+ const [selectedTopic, setSelectedTopic] = useState(-1);
const cfhCategories = useMemo(() =>
{
@@ -17,7 +17,7 @@ export const SelectTopicView: FC<{}> = props =>
const submitTopic = useCallback(() =>
{
if(selectedCategory < 0) return;
- if(selectedTopic < 0 ) return;
+ if(selectedTopic < 0) return;
const reportState = Object.assign({}, helpReportState);
reportState.cfhCategory = selectedCategory;
@@ -25,29 +25,40 @@ export const SelectTopicView: FC<{}> = props =>
reportState.currentStep = 4;
setHelpReportState(reportState);
}, [cfhCategories, helpReportState, selectedCategory, selectedTopic, setHelpReportState]);
-
+
+ const back = useCallback(() =>
+ {
+ const reportState = Object.assign({}, helpReportState);
+ reportState.currentStep = --reportState.currentStep;
+ setHelpReportState(reportState);
+ }, [helpReportState, setHelpReportState]);
+
return (
<>
{LocalizeText('help.emergency.chat_report.subtitle')}
{LocalizeText('help.cfh.pick.topic')}
-
- { (selectedCategory < 0) &&
- cfhCategories.map((category, index) =>
+
+ {(selectedCategory < 0) &&
+ cfhCategories.map((category, index) =>
{
return
})
- }
- { (selectedCategory >= 0 ) &&
- cfhCategories[selectedCategory].topics.map((topic, index) =>
- {
- return
- })
- }
+ }
+ {(selectedCategory >= 0) &&
+ cfhCategories[selectedCategory].topics.map((topic, index) =>
+ {
+ return
+ })
+ }
+
+
+
+
+
-
>
);
}
diff --git a/src/views/mod-tools/ModToolsView.scss b/src/views/mod-tools/ModToolsView.scss
index 58b133ef..e8fb9e18 100644
--- a/src/views/mod-tools/ModToolsView.scss
+++ b/src/views/mod-tools/ModToolsView.scss
@@ -1,20 +1,9 @@
.nitro-mod-tools {
width: 200px;
-
-
-}
-
-.nitro-mod-tools-tickets
-{
- width: 400px;
-
- .issues
- {
- height: 200px;
- }
}
@import './views/room/room-tools/ModToolsRoomView';
@import './views/chatlog/ChatlogView';
@import './views/user/user-info/ModToolsUserView';
@import './views/user/user-room-visits/ModToolsUserRoomVisitsView';
+@import './views/tickets/ModToolsTicketView';
diff --git a/src/views/mod-tools/common/IssueCategoryNames.ts b/src/views/mod-tools/common/IssueCategoryNames.ts
new file mode 100644
index 00000000..bb1ca2c5
--- /dev/null
+++ b/src/views/mod-tools/common/IssueCategoryNames.ts
@@ -0,0 +1,35 @@
+export const getSourceName = (categoryId: number): string =>
+{
+ switch(categoryId)
+ {
+ case 1:
+ case 2:
+ return 'Normal';
+ case 3:
+ return 'Automatic';
+ case 4:
+ return 'Automatic IM';
+ case 5:
+ return 'Guide System';
+ case 6:
+ return 'IM';
+ case 7:
+ return 'Room';
+ case 8:
+ return 'Panic';
+ case 9:
+ return 'Guardian';
+ case 10:
+ return 'Automatic Helper';
+ case 11:
+ return 'Discussion';
+ case 12:
+ return 'Selfie';
+ case 14:
+ return 'Photo';
+ case 15:
+ return 'Ambassador';
+ default:
+ return 'Unknown';
+ }
+}
diff --git a/src/views/mod-tools/views/tickets/ModToolsTicketView.scss b/src/views/mod-tools/views/tickets/ModToolsTicketView.scss
new file mode 100644
index 00000000..f2459483
--- /dev/null
+++ b/src/views/mod-tools/views/tickets/ModToolsTicketView.scss
@@ -0,0 +1,11 @@
+.nitro-mod-tools-tickets
+{
+ width: 400px;
+ height: 200px;
+}
+
+.nitro-mod-tools-handle-issue
+{
+ width: 400px;
+ height: 300px;
+}
diff --git a/src/views/mod-tools/views/tickets/ModToolsTicketsView.tsx b/src/views/mod-tools/views/tickets/ModToolsTicketsView.tsx
index 2a542f13..e2ccea90 100644
--- a/src/views/mod-tools/views/tickets/ModToolsTicketsView.tsx
+++ b/src/views/mod-tools/views/tickets/ModToolsTicketsView.tsx
@@ -3,6 +3,7 @@ import { FC, useCallback, useMemo, useState } from 'react';
import { GetSessionDataManager } from '../../../../api';
import { NitroCardContentView, NitroCardHeaderView, NitroCardTabsItemView, NitroCardTabsView, NitroCardView } from '../../../../layout';
import { useModToolsContext } from '../../context/ModToolsContext';
+import { IssueInfoView } from './issue-info/IssueInfoView';
import { ModToolsTicketsViewProps } from './ModToolsTicketsView.types';
import { ModToolsMyIssuesTabView } from './my-issues/ModToolsMyIssuesTabView';
import { ModToolsOpenIssuesTabView } from './open-issues/ModToolsOpenIssuesTabView';
@@ -20,11 +21,11 @@ export const ModToolsTicketsView: FC
= props =>
const { modToolsState = null } = useModToolsContext();
const { tickets= null } = modToolsState;
const [ currentTab, setCurrentTab ] = useState(0);
+ const [ issueInfoWindows, setIssueInfoWindows ] = useState([]);
const openIssues = useMemo(() =>
{
if(!tickets) return [];
- console.log(tickets);
return tickets.filter(issue => issue.state === IssueMessageData.STATE_OPEN);
}, [tickets]);
@@ -43,18 +44,44 @@ export const ModToolsTicketsView: FC = props =>
return tickets.filter(issue => issue.state === IssueMessageData.STATE_PICKED);
}, [tickets]);
+ const onIssueInfoClosed = useCallback((issueId: number) =>
+ {
+ const indexOfValue = issueInfoWindows.indexOf(issueId);
+
+ if(indexOfValue === -1) return;
+
+ const newValues = Array.from(issueInfoWindows);
+ newValues.splice(indexOfValue, 1);
+ setIssueInfoWindows(newValues);
+ }, [issueInfoWindows]);
+
+ const onIssueHandleClicked = useCallback((issueId: number) =>
+ {
+ if(issueInfoWindows.indexOf(issueId) === -1)
+ {
+ const newValues = Array.from(issueInfoWindows);
+ newValues.push(issueId);
+ setIssueInfoWindows(newValues);
+ }
+ else
+ {
+ onIssueInfoClosed(issueId);
+ }
+ }, [issueInfoWindows, onIssueInfoClosed]);
+
const CurrentTabComponent = useCallback(() =>
{
switch(currentTab)
{
case 0: return ;
- case 1: return ;
+ case 1: return ;
case 2: return ;
default: return null;
}
- }, [currentTab, myIssues, openIssues, pickedIssues]);
+ }, [currentTab, myIssues, onIssueHandleClicked, openIssues, pickedIssues]);
return (
+ <>
@@ -71,5 +98,9 @@ export const ModToolsTicketsView: FC = props =>
+ {
+ issueInfoWindows && issueInfoWindows.map(issueId => )
+ }
+ >
);
}
diff --git a/src/views/mod-tools/views/tickets/issue-info/CfhChatlogView.tsx b/src/views/mod-tools/views/tickets/issue-info/CfhChatlogView.tsx
new file mode 100644
index 00000000..fdb4c28e
--- /dev/null
+++ b/src/views/mod-tools/views/tickets/issue-info/CfhChatlogView.tsx
@@ -0,0 +1,37 @@
+import { CfhChatlogData, CfhChatlogEvent, GetCfhChatlogMessageComposer } from '@nitrots/nitro-renderer';
+import { FC, useCallback, useEffect, useState } from 'react';
+import { CreateMessageHook, SendMessageHook } from '../../../../../hooks';
+import { NitroCardContentView, NitroCardHeaderView, NitroCardView } from '../../../../../layout';
+import { ChatlogView } from '../../chatlog/ChatlogView';
+import { CfhChatlogViewProps } from './CfhChatlogView.types';
+
+export const CfhChatlogView: FC = props =>
+{
+ const { onCloseClick = null, issueId = null } = props;
+ const [ chatlogData, setChatlogData ] = useState(null);
+
+ useEffect(() =>
+ {
+ SendMessageHook(new GetCfhChatlogMessageComposer(issueId));
+ }, [issueId]);
+
+ const onCfhChatlogEvent = useCallback((event: CfhChatlogEvent) =>
+ {
+ const parser = event.getParser();
+
+ if(!parser || parser.data.issueId !== issueId) return;
+
+ setChatlogData(parser.data);
+ }, [issueId]);
+
+ CreateMessageHook(CfhChatlogEvent, onCfhChatlogEvent);
+
+ return (
+
+
+
+ { chatlogData && }
+
+
+ );
+}
diff --git a/src/views/mod-tools/views/tickets/issue-info/CfhChatlogView.types.ts b/src/views/mod-tools/views/tickets/issue-info/CfhChatlogView.types.ts
new file mode 100644
index 00000000..c40c18ad
--- /dev/null
+++ b/src/views/mod-tools/views/tickets/issue-info/CfhChatlogView.types.ts
@@ -0,0 +1,5 @@
+export interface CfhChatlogViewProps
+{
+ issueId: number;
+ onCloseClick(): void;
+}
diff --git a/src/views/mod-tools/views/tickets/issue-info/IssueInfoView.tsx b/src/views/mod-tools/views/tickets/issue-info/IssueInfoView.tsx
new file mode 100644
index 00000000..61a9784a
--- /dev/null
+++ b/src/views/mod-tools/views/tickets/issue-info/IssueInfoView.tsx
@@ -0,0 +1,72 @@
+import { CloseIssuesMessageComposer, ReleaseIssuesMessageComposer } from '@nitrots/nitro-renderer';
+import { FC, useCallback, useMemo, useState } from 'react';
+import { LocalizeText } from '../../../../../api';
+import { ModToolsOpenUserInfoEvent } from '../../../../../events/mod-tools/ModToolsOpenUserInfoEvent';
+import { dispatchUiEvent, SendMessageHook } from '../../../../../hooks';
+import { NitroCardContentView, NitroCardHeaderView, NitroCardView } from '../../../../../layout';
+import { getSourceName } from '../../../common/IssueCategoryNames';
+import { useModToolsContext } from '../../../context/ModToolsContext';
+import { CfhChatlogView } from './CfhChatlogView';
+import { IssueInfoViewProps } from './IssueInfoView.types';
+
+export const IssueInfoView: FC = props =>
+{
+ const { issueId = null, onIssueInfoClosed = null } = props;
+ const { modToolsState = null } = useModToolsContext();
+ const { tickets= null } = modToolsState;
+ const [ cfhChatlogOpen, setcfhChatlogOpen ] = useState(false);
+
+ const ticket = useMemo(() =>
+ {
+ return tickets.find( issue => issue.issueId === issueId);
+ }, [issueId, tickets]);
+
+ const onReleaseIssue = useCallback((issueId: number) =>
+ {
+ SendMessageHook(new ReleaseIssuesMessageComposer([issueId]));
+ onIssueInfoClosed(issueId);
+ }, [onIssueInfoClosed]);
+
+ const openUserInfo = useCallback((userId: number) =>
+ {
+ dispatchUiEvent(new ModToolsOpenUserInfoEvent(userId));
+ }, []);
+
+ const closeIssue = useCallback((resolutionType: number) =>
+ {
+ SendMessageHook(new CloseIssuesMessageComposer([issueId], resolutionType));
+ onIssueInfoClosed(issueId)
+ }, [issueId, onIssueInfoClosed]);
+
+ return (
+ <>
+
+ onIssueInfoClosed(issueId)} />
+
+
+
+
Issue Information
+
Source: {getSourceName(ticket.categoryId)}
+
Category: {LocalizeText('help.cfh.topic.' + ticket.reportedCategoryId)}
+
Description: {ticket.message}
+
Caller:
+
Reported User:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ { cfhChatlogOpen && setcfhChatlogOpen(false) }/>}
+ >
+ );
+}
diff --git a/src/views/mod-tools/views/tickets/issue-info/IssueInfoView.types.ts b/src/views/mod-tools/views/tickets/issue-info/IssueInfoView.types.ts
new file mode 100644
index 00000000..1b28d803
--- /dev/null
+++ b/src/views/mod-tools/views/tickets/issue-info/IssueInfoView.types.ts
@@ -0,0 +1,5 @@
+export interface IssueInfoViewProps
+{
+ issueId: number;
+ onIssueInfoClosed(issueId: number): void;
+}
diff --git a/src/views/mod-tools/views/tickets/my-issues/ModToolsMyIssuesTabView.tsx b/src/views/mod-tools/views/tickets/my-issues/ModToolsMyIssuesTabView.tsx
index 63ab7546..1a3fcde3 100644
--- a/src/views/mod-tools/views/tickets/my-issues/ModToolsMyIssuesTabView.tsx
+++ b/src/views/mod-tools/views/tickets/my-issues/ModToolsMyIssuesTabView.tsx
@@ -1,53 +1,45 @@
-import { FC } from 'react';
-import { AutoSizer, List, ListRowProps, ListRowRenderer } from 'react-virtualized';
+import { ReleaseIssuesMessageComposer } from '@nitrots/nitro-renderer';
+import { FC, useCallback } from 'react';
+import { SendMessageHook } from '../../../../../hooks';
import { ModToolsMyIssuesTabViewProps } from './ModToolsMyIssuesTabView.types';
export const ModToolsMyIssuesTabView: FC = props =>
{
- const { myIssues = null } = props;
-
- const RowRenderer: ListRowRenderer = (props: ListRowProps) =>
- {
- const item = myIssues[props.index];
-
- return (
-
-
{item.categoryId}
-
{item.reportedUserName}
-
{item.getOpenTime(new Date().getTime())}
-
-
-
-
- );
- };
+ const { myIssues = null, onIssueHandleClick = null } = props;
+
+ const onReleaseIssue = useCallback((issueId: number) =>
+ {
+ SendMessageHook(new ReleaseIssuesMessageComposer([issueId]));
+ }, []);
+
return (
<>
-
-
Type
-
Room/Player
-
Opened
-
-
-
-
- {({ height, width }) =>
- {
- return (
-
- )
- }
- }
-
-
+
+
+
+ Type |
+ Room/Player |
+ Opened |
+ |
+ |
+
+
+
+ {myIssues.map(issue =>
+ {
+ return (
+
+ {issue.categoryId} |
+ {issue.reportedUserName} |
+ {new Date(Date.now() - issue.issueAgeInMilliseconds).toLocaleTimeString()} |
+ |
+ |
+
)
+ })
+ }
+
+
>
);
}
diff --git a/src/views/mod-tools/views/tickets/my-issues/ModToolsMyIssuesTabView.types.ts b/src/views/mod-tools/views/tickets/my-issues/ModToolsMyIssuesTabView.types.ts
index 15935fc9..6d03fbf8 100644
--- a/src/views/mod-tools/views/tickets/my-issues/ModToolsMyIssuesTabView.types.ts
+++ b/src/views/mod-tools/views/tickets/my-issues/ModToolsMyIssuesTabView.types.ts
@@ -3,4 +3,5 @@ import { IssueMessageData } from '@nitrots/nitro-renderer';
export interface ModToolsMyIssuesTabViewProps
{
myIssues: IssueMessageData[];
+ onIssueHandleClick(issueId: number): void;
}
diff --git a/src/views/mod-tools/views/tickets/open-issues/ModToolsOpenIssuesTabView.tsx b/src/views/mod-tools/views/tickets/open-issues/ModToolsOpenIssuesTabView.tsx
index 3452aba5..4f8bb6d6 100644
--- a/src/views/mod-tools/views/tickets/open-issues/ModToolsOpenIssuesTabView.tsx
+++ b/src/views/mod-tools/views/tickets/open-issues/ModToolsOpenIssuesTabView.tsx
@@ -1,53 +1,42 @@
-import { FC } from 'react';
-import { AutoSizer, List, ListRowProps, ListRowRenderer } from 'react-virtualized';
+import { PickIssuesMessageComposer } from '@nitrots/nitro-renderer';
+import { FC, useCallback } from 'react';
+import { SendMessageHook } from '../../../../../hooks';
import { ModToolsOpenIssuesTabViewProps } from './ModToolsOpenIssuesTabView.types';
export const ModToolsOpenIssuesTabView: FC = props =>
{
const { openIssues = null } = props;
- const RowRenderer: ListRowRenderer = (props: ListRowProps) =>
+ const onPickIssue = useCallback((issueId: number) =>
{
- const item = openIssues[props.index];
+ SendMessageHook(new PickIssuesMessageComposer([issueId], false, 0, 'pick issue button'));
+ }, []);
- return (
-
-
{item.categoryId}
-
{item.reportedUserName}
-
{item.getOpenTime(new Date().getTime())}
-
-
-
-
- );
- };
-
return (
<>
-
-
Type
-
Room/Player
-
Opened
-
-
-
-
- {({ height, width }) =>
- {
- return (
-
- )
- }
- }
-
-
+
+
+
+ Type |
+ Room/Player |
+ Opened |
+ |
+
+
+
+ {openIssues.map(issue =>
+ {
+ return (
+
+ {issue.categoryId} |
+ {issue.reportedUserName} |
+ {new Date(Date.now() - issue.issueAgeInMilliseconds).toLocaleTimeString()} |
+ |
+
)
+ })
+ }
+
+
>
);
}
diff --git a/src/views/mod-tools/views/tickets/picked-issues/ModToolsPickedIssuesTabView.tsx b/src/views/mod-tools/views/tickets/picked-issues/ModToolsPickedIssuesTabView.tsx
index dc7f79b1..988a0fd9 100644
--- a/src/views/mod-tools/views/tickets/picked-issues/ModToolsPickedIssuesTabView.tsx
+++ b/src/views/mod-tools/views/tickets/picked-issues/ModToolsPickedIssuesTabView.tsx
@@ -1,53 +1,35 @@
import { FC } from 'react';
-import { AutoSizer, List, ListRowProps, ListRowRenderer } from 'react-virtualized';
import { ModToolsPickedIssuesTabViewProps } from './ModToolsPickedIssuesTabView.types';
export const ModToolsPickedIssuesTabView: FC = props =>
{
const { pickedIssues = null } = props;
-
- const RowRenderer: ListRowRenderer = (props: ListRowProps) =>
- {
- const item = pickedIssues[props.index];
-
- return (
-
-
{item.categoryId}
-
{item.reportedUserName}
-
{item.getOpenTime(new Date().getTime())}
-
- {item.pickerUserName}
-
-
- );
- };
return (
<>
-
-
Type
-
Room/Player
-
Opened
-
Picker
-
-
-
- {({ height, width }) =>
- {
- return (
-
- )
- }
- }
-
-
+
+
+
+ Type |
+ Room/Player |
+ Opened |
+ Picker |
+
+
+
+ {pickedIssues.map(issue =>
+ {
+ return (
+
+ {issue.categoryId} |
+ {issue.reportedUserName} |
+ {new Date(Date.now() - issue.issueAgeInMilliseconds).toLocaleTimeString()} |
+ {issue.pickerUserName} |
+
)
+ })
+ }
+
+
>
);
}