import { useCallback, useEffect, useState } from 'react'; import { MessageDisplay } from './MessageDisplay'; import { Avatar, Box, Typography, useTheme } from '@mui/material'; import { formatTimestamp } from '../../utils/time'; import ChatBubbleIcon from '@mui/icons-material/ChatBubble'; import ArrowForwardIosIcon from '@mui/icons-material/ArrowForwardIos'; import { requestQueueCommentCount } from './GroupAnnouncements'; import { CustomLoader } from '../../common/CustomLoader'; import { getArbitraryEndpointReact, getBaseApiReact } from '../../App'; import { WrapperUserAction } from '../WrapperUserAction'; import { useTranslation } from 'react-i18next'; export const AnnouncementItem = ({ message, messageData, setSelectedAnnouncement, disableComment, myName, }) => { const theme = useTheme(); const { t } = useTranslation([ 'auth', 'core', 'group', 'question', 'tutorial', ]); const [commentLength, setCommentLength] = useState(0); const getNumberOfComments = useCallback(async () => { try { const offset = 0; const identifier = `cm-${message.identifier}`; const url = `${getBaseApiReact()}${getArbitraryEndpointReact()}?mode=ALL&service=DOCUMENT&identifier=${identifier}&limit=0&includemetadata=false&offset=${offset}&reverse=true&prefix=true`; const response = await requestQueueCommentCount.enqueue(() => { return fetch(url, { method: 'GET', headers: { 'Content-Type': 'application/json', }, }); }); const responseData = await response.json(); setCommentLength(responseData?.length); } catch (error) { console.log(error); } }, []); useEffect(() => { if (disableComment) return; getNumberOfComments(); }, []); return (