import { Box, Callout, Message, StatesAction, StatesActions, StatesIcon, StatesTitle } from '@rocket.chat/fuselage'; import { useStableCallback } from '@rocket.chat/fuselage-hooks'; import { ContextualbarFooter } from '@rocket.chat/ui-client'; import { useEndpoint } from '@rocket.chat/ui-contexts'; import { useQuery } from '@tanstack/react-query'; import { Fragment } from 'react'; import { useTranslation } from 'react-i18next'; import MessageContextFooter from './MessageContextFooter'; import ContextMessage from './helpers/ContextMessage'; import GenericNoResults from '../../../components/GenericNoResults'; // TODO: We should use Contextualbar components here const UserMessages = ({ userId, onRedirect }: { userId: string; onRedirect: (mid: string) => void }) => { const { t } = useTranslation(); const getUserMessages = useEndpoint('GET', '/v1/moderation.user.reportedMessages'); const { data: report, refetch: reloadUserMessages, isLoading, isSuccess, isError, } = useQuery({ queryKey: ['moderation', 'msgReports', 'fetchDetails', { userId }], queryFn: async () => { const messages = await getUserMessages({ userId }); return messages; }, meta: { apiErrorToastMessage: true, }, }); const handleChange = useStableCallback(() => { reloadUserMessages(); }); return ( <> {isLoading && {t('Loading')}} {isSuccess && ( {report.messages.length > 0 && ( {t('Moderation_Duplicate_messages_warning')} )} {!report.user && ( {t('Moderation_User_deleted_warning')} )} )} {isSuccess && report.messages.length > 0 && report.messages.map((message) => ( ))} {isSuccess && report.messages.length === 0 && } {isError && ( {t('Something_went_wrong')} {t('Reload_page')} )} {isSuccess && report.messages.length > 0 && ( )} ); }; export default UserMessages;