import { Tabs, TabsItem } from '@rocket.chat/fuselage'; import { Page, PageHeader, PageContent } from '@rocket.chat/ui-client'; import { useTranslation, useRouteParameter, useToastMessageDispatch } from '@rocket.chat/ui-contexts'; import { useCallback } from 'react'; import ModConsoleReportDetails from './ModConsoleReportDetails'; import ModerationConsoleTable from './ModerationConsoleTable'; import ModConsoleUsersTable from './UserReports/ModConsoleUsersTable'; import { getPermaLink } from '../../../lib/getPermaLink'; type TabType = 'users' | 'messages'; export type ModerationConsolePageProps = { tab: TabType; onSelectTab?: (tab: TabType) => void; }; const ModerationConsolePage = ({ tab = 'messages', onSelectTab }: ModerationConsolePageProps) => { const t = useTranslation(); const context = useRouteParameter('context'); const id = useRouteParameter('id'); const dispatchToastMessage = useToastMessageDispatch(); const handleRedirect = useCallback( async (mid: string) => { try { const permalink = await getPermaLink(mid); window.open(permalink, '_self'); } catch (error) { dispatchToastMessage({ type: 'error', message: error }); } }, [dispatchToastMessage], ); const handleTabClick = useCallback( (tab: TabType): undefined | (() => void) => (onSelectTab ? (): void => onSelectTab(tab) : undefined), [onSelectTab], ); return ( {t('Reported_Messages')} {t('Reported_Users')} {tab === 'messages' && } {tab === 'users' && } {context === 'info' && id && } ); }; export default ModerationConsolePage;