diff --git a/src/pages/ChatPage.tsx b/src/pages/ChatPage.tsx index 658fddf7..ad26d15b 100644 --- a/src/pages/ChatPage.tsx +++ b/src/pages/ChatPage.tsx @@ -10,7 +10,7 @@ import useEventPublisher from "../feed/EventPublisher"; import DM from "../element/DM"; import { RawEvent } from "../nostr"; -import { dmsInChat } from "./MessagesPage"; +import { dmsInChat, isToSelf } from "./MessagesPage"; type RouterParams = { id: string @@ -20,13 +20,14 @@ export default function ChatPage() { const params = useParams(); const publisher = useEventPublisher(); const id = bech32ToHex(params.id ?? ""); + const pubKey = useSelector(s => s.login.publicKey); const dms = useSelector(s => filterDms(s.login.dms)); const [content, setContent] = useState(); const { ref, inView, entry } = useInView(); const dmListRef = useRef(null); function filterDms(dms: RawEvent[]) { - return dmsInChat(dms, id); + return dmsInChat(id === pubKey ? dms.filter(d => isToSelf(d, pubKey)) : dms, id); } const sortedDms = useMemo(() => { diff --git a/src/pages/MessagesPage.tsx b/src/pages/MessagesPage.tsx index fd7a64f7..bcfa146e 100644 --- a/src/pages/MessagesPage.tsx +++ b/src/pages/MessagesPage.tsx @@ -73,6 +73,10 @@ function unreadDms(dms: RawEvent[], myPubKey: HexKey, pk: HexKey) { } function newestMessage(dms: RawEvent[], myPubKey: HexKey, pk: HexKey) { + if(pk === myPubKey) { + return dmsInChat(dms.filter(d => isToSelf(d, myPubKey)), pk).reduce((acc, v) => acc = v.created_at > acc ? v.created_at : acc, 0); + } + return dmsInChat(dms, pk).reduce((acc, v) => acc = v.created_at > acc ? v.created_at : acc, 0); }