import { Message } from "@chatscope/chat-ui-kit-react"; import React, { useEffect, useState } from "react"; import { useInView } from "react-intersection-observer"; import { MessageDisplay } from "./MessageDisplay"; import { Avatar, Box, Typography } from "@mui/material"; import { formatTimestamp } from "../../utils/time"; import ChatBubbleIcon from '@mui/icons-material/ChatBubble'; import ArrowForwardIosIcon from '@mui/icons-material/ArrowForwardIos'; import { getBaseApi } from "../../background"; import { requestQueueCommentCount } from "./GroupAnnouncements"; import { CustomLoader } from "../../common/CustomLoader"; import { getBaseApiReact } from "../../App"; import { WrapperUserAction } from "../WrapperUserAction"; export const AnnouncementItem = ({ message, messageData, setSelectedAnnouncement, disableComment, myName }) => { const [commentLength, setCommentLength] = useState(0) const getNumberOfComments = React.useCallback( async () => { try { const offset = 0; // dispatch(setIsLoadingGlobal(true)) const identifier = `cm-${message.identifier}`; const url = `${getBaseApiReact()}/arbitrary/resources/search?mode=ALL&service=DOCUMENT&identifier=${identifier}&limit=0&includemetadata=false&offset=${offset}&reverse=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) { } finally { // dispatch(setIsLoadingGlobal(false)) } }, [] ); useEffect(()=> { if(disableComment) return getNumberOfComments() }, []) return (
{message?.name?.charAt(0)} {message?.name} {!messageData?.decryptedData && ( )} {messageData?.decryptedData?.message && ( <> {messageData?.type === "notification" ? ( ) : ( )} )} {formatTimestamp(message.created)} {!disableComment && ( setSelectedAnnouncement(message)}> {commentLength ? ( {`${commentLength > 1 ? `${commentLength} comments` : `${commentLength} comment`}`} ) : ( Leave comment )} )}
); };