import type { IModerationReport } from '@rocket.chat/core-typings';
import { Box, Message } from '@rocket.chat/fuselage';
import { useEndpoint, useSetting } from '@rocket.chat/ui-contexts';
import { useQuery } from '@tanstack/react-query';
import { useTranslation } from 'react-i18next';
import ReportReason from './helpers/ReportReason';
export type MessageReportInfoProps = { msgId: string };
const MessageReportInfo = ({ msgId }: MessageReportInfoProps) => {
const { t } = useTranslation();
const getReportsByMessage = useEndpoint('GET', `/v1/moderation.reports`);
const useRealName = useSetting('UI_Use_Real_Name', false);
const {
data: reportsByMessage,
isLoading: isLoadingReportsByMessage,
isSuccess: isSuccessReportsByMessage,
isError: isErrorReportsByMessage,
} = useQuery({
queryKey: ['moderation', 'msgReports', 'fetchReasons', { msgId }],
queryFn: async () => {
const reports = await getReportsByMessage({ msgId });
return reports;
},
meta: {
apiErrorToastMessage: true,
},
});
if (isLoadingReportsByMessage) {
return (
{t('Loading')}
);
}
if (isErrorReportsByMessage) {
return (
{t('Error')}
);
}
const { reports } = reportsByMessage as unknown as { reports: IModerationReport[] };
return (
<>
{isSuccessReportsByMessage && reportsByMessage?.reports && (
{reports.map((report: IModerationReport, index: number) => (
))}
)}
>
);
};
export default MessageReportInfo;