From c39be7dcd31bf051c559c5d620f9dda7de16b3bc Mon Sep 17 00:00:00 2001 From: alina sireneva Date: Thu, 30 May 2024 17:43:58 +0300 Subject: [PATCH] fix(core)!: nullable lastMessage in `Dialog` --- .../core/src/highlevel/methods/dialogs/iter-dialogs.ts | 5 ++++- packages/core/src/highlevel/types/messages/dialog.ts | 7 +++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/core/src/highlevel/methods/dialogs/iter-dialogs.ts b/packages/core/src/highlevel/methods/dialogs/iter-dialogs.ts index 2613068e..5c8d38ca 100644 --- a/packages/core/src/highlevel/methods/dialogs/iter-dialogs.ts +++ b/packages/core/src/highlevel/methods/dialogs/iter-dialogs.ts @@ -253,7 +253,10 @@ export async function* iterDialogs( const last = dialogs[dialogs.length - 1] offsetPeer = last.chat.inputPeer offsetId = last.raw.topMessage - offsetDate = last.lastMessage.raw.date + + if (last.lastMessage) { + offsetDate = last.lastMessage.raw.date + } for (const d of dialogs) { if (filterFolder && !filterFolder(d)) continue diff --git a/packages/core/src/highlevel/types/messages/dialog.ts b/packages/core/src/highlevel/types/messages/dialog.ts index 32575125..bf20b342 100644 --- a/packages/core/src/highlevel/types/messages/dialog.ts +++ b/packages/core/src/highlevel/types/messages/dialog.ts @@ -4,7 +4,6 @@ import { getMarkedPeerId } from '../../../utils/peer-utils.js' import { assertTypeIsNot, hasValueAtKey } from '../../../utils/type-assertions.js' import { makeInspectable } from '../../utils/index.js' import { memoizeGetters } from '../../utils/memoize.js' -import { MtMessageNotFoundError } from '../errors.js' import { Chat } from '../peers/chat.js' import { PeersIndex } from '../peers/peers-index.js' import { DraftMessage } from './draft-message.js' @@ -198,16 +197,16 @@ export class Dialog { } /** - * The latest message sent in this chat + * The latest message sent in this chat (if any) */ - get lastMessage(): Message { + get lastMessage(): Message | null { const cid = this.chat.id if (this._messages.has(cid)) { return new Message(this._messages.get(cid)!, this._peers) } - throw new MtMessageNotFoundError(cid, 0) + return null } /**