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;