Don't change left pane preview or order when someone leaves group
This commit is contained in:
parent
1356625391
commit
be9721c72d
5 changed files with 121 additions and 45 deletions
|
@ -2795,19 +2795,44 @@ async function getNewestMessageForConversation(conversationId: string) {
|
|||
return row;
|
||||
}
|
||||
|
||||
async function getLastConversationActivity(
|
||||
conversationId: string
|
||||
): Promise<MessageType | null> {
|
||||
async function getLastConversationActivity({
|
||||
conversationId,
|
||||
ourConversationId,
|
||||
}: {
|
||||
conversationId: string;
|
||||
ourConversationId: string;
|
||||
}): Promise<MessageType | null> {
|
||||
const db = getInstance();
|
||||
const row = await db.get(
|
||||
`SELECT * FROM messages WHERE
|
||||
conversationId = $conversationId AND
|
||||
(type IS NULL OR type NOT IN ('profile-change', 'verified-change', 'message-history-unsynced', 'keychange', 'group-v1-migration')) AND
|
||||
(json_extract(json, '$.expirationTimerUpdate.fromSync') IS NULL OR json_extract(json, '$.expirationTimerUpdate.fromSync') != 1)
|
||||
(type IS NULL
|
||||
OR
|
||||
type NOT IN (
|
||||
'profile-change',
|
||||
'verified-change',
|
||||
'message-history-unsynced',
|
||||
'keychange',
|
||||
'group-v1-migration'
|
||||
)
|
||||
) AND
|
||||
(
|
||||
json_extract(json, '$.expirationTimerUpdate.fromSync') IS NULL
|
||||
OR
|
||||
json_extract(json, '$.expirationTimerUpdate.fromSync') != 1
|
||||
) AND NOT
|
||||
(
|
||||
type = 'group-v2-change' AND
|
||||
json_extract(json, '$.groupV2Change.from') != $ourConversationId AND
|
||||
json_extract(json, '$.groupV2Change.details.length') = 1 AND
|
||||
json_extract(json, '$.groupV2Change.details[0].type') != 'member-remove' AND
|
||||
json_extract(json, '$.groupV2Change.details[0].conversationId') != $ourConversationId
|
||||
)
|
||||
ORDER BY received_at DESC, sent_at DESC
|
||||
LIMIT 1;`,
|
||||
{
|
||||
$conversationId: conversationId,
|
||||
$ourConversationId: ourConversationId,
|
||||
}
|
||||
);
|
||||
|
||||
|
@ -2817,18 +2842,39 @@ async function getLastConversationActivity(
|
|||
|
||||
return jsonToObject(row.json);
|
||||
}
|
||||
async function getLastConversationPreview(
|
||||
conversationId: string
|
||||
): Promise<MessageType | null> {
|
||||
async function getLastConversationPreview({
|
||||
conversationId,
|
||||
ourConversationId,
|
||||
}: {
|
||||
conversationId: string;
|
||||
ourConversationId: string;
|
||||
}): Promise<MessageType | null> {
|
||||
const db = getInstance();
|
||||
const row = await db.get(
|
||||
`SELECT * FROM messages WHERE
|
||||
conversationId = $conversationId AND
|
||||
(type IS NULL OR type NOT IN ('profile-change', 'verified-change', 'message-history-unsynced', 'group-v1-migration'))
|
||||
(
|
||||
type IS NULL
|
||||
OR
|
||||
type NOT IN (
|
||||
'profile-change',
|
||||
'verified-change',
|
||||
'message-history-unsynced',
|
||||
'group-v1-migration'
|
||||
)
|
||||
) AND NOT
|
||||
(
|
||||
type = 'group-v2-change' AND
|
||||
json_extract(json, '$.groupV2Change.from') != $ourConversationId AND
|
||||
json_extract(json, '$.groupV2Change.details.length') = 1 AND
|
||||
json_extract(json, '$.groupV2Change.details[0].type') != 'member-remove' AND
|
||||
json_extract(json, '$.groupV2Change.details[0].conversationId') != $ourConversationId
|
||||
)
|
||||
ORDER BY received_at DESC, sent_at DESC
|
||||
LIMIT 1;`,
|
||||
{
|
||||
$conversationId: conversationId,
|
||||
$ourConversationId: ourConversationId,
|
||||
}
|
||||
);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue