import type React from "react"; import { CircleIcon, FullCircleIcon, majorScale, Pane, Small, Strong, Text, } from "evergreen-ui"; import { useDevice } from "@core/providers/useDevice.js"; import { Hashicon } from "@emeraldpay/hashicon-react"; import type { Protobuf, Types } from "@meshtastic/meshtasticjs"; import { LocationMessage } from "./LocationMessage.js"; export interface MessageProps { lastMsgSameUser: boolean; messagePacket: Types.MessagePacket; ack: boolean; rxTime: Date; sender?: Protobuf.NodeInfo; } export const Message = ({ lastMsgSameUser, messagePacket, ack, rxTime, sender, }: MessageProps): JSX.Element => { const { setPeerInfoOpen, setActivePeer } = useDevice(); const openPeer = (): void => { setActivePeer(messagePacket.packet.from); setPeerInfoOpen(true); }; return lastMsgSameUser ? ( {ack ? ( ) : ( )} {messagePacket.location ? ( ) : ( {messagePacket.text} )} ) : ( {sender?.user?.longName ?? "UNK"} {rxTime.toLocaleTimeString(undefined, { hour: "2-digit", minute: "2-digit", })} {ack ? ( ) : ( )} {messagePacket.location ? ( ) : ( {messagePacket.text} )} ); };