import { ILinkEventTracker } from '@nitrots/nitro-renderer';
import { FC, useEffect, useState } from 'react';
import { AddEventLinkTracker, LocalizeText, RemoveLinkEventTracker, ReportState } from '../../api';
import { Base, Column, Grid, NitroCardContentView, NitroCardHeaderView, NitroCardView } from '../../common';
import { useHelp } from '../../hooks';
import { DescribeReportView } from './views/DescribeReportView';
import { HelpIndexView } from './views/HelpIndexView';
import { NameChangeView } from './views/name-change/NameChangeView';
import { ReportSummaryView } from './views/ReportSummaryView';
import { SanctionSatusView } from './views/SanctionStatusView';
import { SelectReportedChatsView } from './views/SelectReportedChatsView';
import { SelectReportedUserView } from './views/SelectReportedUserView';
import { SelectTopicView } from './views/SelectTopicView';
export const HelpView: FC<{}> = props =>
{
const [ isVisible, setIsVisible ] = useState(false);
const { activeReport = null, setActiveReport = null, report = null } = useHelp();
const onClose = () =>
{
setActiveReport(null);
setIsVisible(false);
}
useEffect(() =>
{
const linkTracker: ILinkEventTracker = {
linkReceived: (url: string) =>
{
const parts = url.split('/');
if(parts.length < 2) return;
switch(parts[1])
{
case 'show':
setIsVisible(true);
return;
case 'hide':
setIsVisible(false);
return;
case 'toggle':
setIsVisible(prevValue => !prevValue);
return;
case 'tour':
// todo: launch tour
return;
case 'report':
if((parts.length >= 5) && (parts[2] === 'room'))
{
const roomId = parseInt(parts[3]);
const unknown = unescape(parts.splice(4).join('/'));
//this.reportRoom(roomId, unknown, "");
}
return;
}
},
eventUrlPrefix: 'help/'
};
AddEventLinkTracker(linkTracker);
return () => RemoveLinkEventTracker(linkTracker);
}, []);
useEffect(() =>
{
if(!activeReport) return;
setIsVisible(true);
}, [ activeReport ]);
if(!isVisible && !activeReport) return null;
const CurrentStepView = () =>
{
if(activeReport)
{
switch(activeReport.currentStep)
{
case ReportState.SELECT_USER:
return ;
case ReportState.SELECT_CHATS:
return ;
case ReportState.SELECT_TOPICS:
return ;
case ReportState.INPUT_REPORT_MESSAGE:
return ;
case ReportState.REPORT_SUMMARY:
return ;
}
}
return ;
}
return (
<>
>
);
}