import { Message } from "@chatscope/chat-ui-kit-react"; import React, { useEffect } from "react"; import { useInView } from "react-intersection-observer"; import { MessageDisplay } from "./MessageDisplay"; import { Avatar, Box, ButtonBase, Typography } from "@mui/material"; import { formatTimestamp } from "../../utils/time"; import { getBaseApi } from "../../background"; import { getBaseApiReact } from "../../App"; import { generateHTML } from "@tiptap/react"; import Highlight from "@tiptap/extension-highlight"; import StarterKit from "@tiptap/starter-kit"; import Underline from "@tiptap/extension-underline"; import { executeEvent } from "../../utils/events"; import { WrapperUserAction } from "../WrapperUserAction"; import ReplyIcon from "@mui/icons-material/Reply"; import { Spacer } from "../../common/Spacer"; export const MessageItem = ({ message, onSeen, isLast, isTemp, myAddress, onReply, isShowingAsReply, reply, replyIndex, scrollToItem }) => { const { ref, inView } = useInView({ threshold: 0.7, // Fully visible triggerOnce: true, // Only trigger once when it becomes visible }); useEffect(() => { if (inView && message.unread) { onSeen(message.id); } }, [inView, message.id, message.unread, onSeen]); return (