From 3591aea8d5e4332b13011b944ee6c06f3cd79c45 Mon Sep 17 00:00:00 2001 From: Alexander Zinchuk Date: Fri, 16 Sep 2022 18:28:51 +0200 Subject: [PATCH] Chat List: Allow showing chats with no messages --- src/components/left/main/Chat.scss | 4 ++++ src/components/left/main/Chat.tsx | 14 ++++++++------ src/util/folderManager.ts | 2 +- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/src/components/left/main/Chat.scss b/src/components/left/main/Chat.scss index 7212feaab..5c6eea5e9 100644 --- a/src/components/left/main/Chat.scss +++ b/src/components/left/main/Chat.scss @@ -29,6 +29,10 @@ } } + &:last-of-type { + padding-bottom: 0.5rem; + } + @media (max-width: 600px) { &.selected { --background-color: var(--color-chat-hover) !important; diff --git a/src/components/left/main/Chat.tsx b/src/components/left/main/Chat.tsx index 0e662005b..5a660ccd6 100644 --- a/src/components/left/main/Chat.tsx +++ b/src/components/left/main/Chat.tsx @@ -135,7 +135,7 @@ const Chat: FC = ({ const { lastMessage, typingStatus } = chat || {}; const isAction = lastMessage && isActionMessage(lastMessage); - useEnsureMessage(chatId, isAction ? lastMessage!.replyToMessageId : undefined, actionTargetMessage); + useEnsureMessage(chatId, isAction ? lastMessage.replyToMessageId : undefined, actionTargetMessage); const mediaThumbnail = lastMessage && !getMessageSticker(lastMessage) ? getMessageMediaThumbDataUri(lastMessage) @@ -288,7 +288,7 @@ const Chat: FC = ({ : )} - {renderSummary(lang, lastMessage!, observeIntersection, mediaBlobUrl || mediaThumbnail, isRoundVideo)} + {renderSummary(lang, lastMessage, observeIntersection, mediaBlobUrl || mediaThumbnail, isRoundVideo)}

); } @@ -391,13 +391,13 @@ function renderSummary( export default memo(withGlobal( (global, { chatId }): StateProps => { const chat = selectChat(global, chatId); - if (!chat || !chat.lastMessage) { + if (!chat) { return {}; } - const { senderId, replyToMessageId, isOutgoing } = chat.lastMessage; + const { senderId, replyToMessageId, isOutgoing } = chat.lastMessage || {}; const lastMessageSender = senderId ? selectUser(global, senderId) : undefined; - const lastMessageAction = getMessageAction(chat.lastMessage); + const lastMessageAction = chat.lastMessage ? getMessageAction(chat.lastMessage) : undefined; const actionTargetMessage = lastMessageAction && replyToMessageId ? selectChatMessage(global, chat.id, replyToMessageId) : undefined; @@ -423,7 +423,9 @@ export default memo(withGlobal( canScrollDown: isSelected && messageListType === 'thread', canChangeFolder: (global.chatFolders.orderedIds?.length || 0) > 1, lastSyncTime: global.lastSyncTime, - ...(isOutgoing && { lastMessageOutgoingStatus: selectOutgoingStatus(global, chat.lastMessage) }), + ...(isOutgoing && chat.lastMessage && { + lastMessageOutgoingStatus: selectOutgoingStatus(global, chat.lastMessage), + }), ...(privateChatUserId && { user: selectUser(global, privateChatUserId), userStatus: selectUserStatus(global, privateChatUserId), diff --git a/src/util/folderManager.ts b/src/util/folderManager.ts index 5192528fd..f9909414f 100644 --- a/src/util/folderManager.ts +++ b/src/util/folderManager.ts @@ -429,7 +429,7 @@ function buildChatSummary( return { id, type, - isListed: Boolean(lastMessage && !isRestricted && !isNotJoined && !migratedTo), + isListed: Boolean(!isRestricted && !isNotJoined && !migratedTo), isArchived: folderId === ARCHIVED_FOLDER_ID, isMuted: selectIsChatMuted(chat, notifySettings, notifyExceptions), isUnread: Boolean(unreadCount || unreadMentionsCount || hasUnreadMark),