Fix pinned messages state syncing

This commit is contained in:
Jamie
2025-12-29 11:36:07 -08:00
committed by GitHub
parent b405e3d83d
commit 963c94a2a2
25 changed files with 388 additions and 437 deletions

View File

@@ -69,7 +69,7 @@ import type {
PinnedMessage,
PinnedMessageId,
PinnedMessageParams,
PinnedMessageRenderData,
PinnedMessagePreloadData,
} from '../types/PinnedMessage.std.js';
import type { AppendPinnedMessageResult } from './server/pinnedMessages.std.js';
import type {
@@ -986,9 +986,9 @@ type ReadableInterface = {
getAllMegaphones: () => ReadonlyArray<RemoteMegaphoneType>;
hasMegaphone: (megaphoneId: RemoteMegaphoneId) => boolean;
getPinnedMessagesForConversation: (
getPinnedMessagesPreloadDataForConversation: (
conversationId: string
) => ReadonlyArray<PinnedMessageRenderData>;
) => ReadonlyArray<PinnedMessagePreloadData>;
getNextExpiringPinnedMessageAcrossConversations: () => PinnedMessage | null;
getMessagesNeedingUpgrade: (

View File

@@ -259,7 +259,7 @@ import {
deleteExpiredChatFolders,
} from './server/chatFolders.std.js';
import {
getPinnedMessagesForConversation,
getPinnedMessagesPreloadDataForConversation,
getNextExpiringPinnedMessageAcrossConversations,
appendPinnedMessage,
deletePinnedMessageByMessageId,
@@ -493,7 +493,7 @@ export const DataReader: ServerReadableInterface = {
getAllMegaphones,
hasMegaphone,
getPinnedMessagesForConversation,
getPinnedMessagesPreloadDataForConversation,
getNextExpiringPinnedMessageAcrossConversations,
callLinkExists,

View File

@@ -5,7 +5,7 @@ import type {
PinnedMessage,
PinnedMessageId,
PinnedMessageParams,
PinnedMessageRenderData,
PinnedMessagePreloadData,
} from '../../types/PinnedMessage.std.js';
import { strictAssert } from '../../util/assert.std.js';
import { hydrateMessage } from '../hydration.std.js';
@@ -34,10 +34,10 @@ function _getMessageById(
return hydrateMessage(db, row);
}
function _getPinnedMessageRenderData(
function _getPinnedMessagePreloadData(
db: ReadableDB,
pinnedMessage: PinnedMessage
): PinnedMessageRenderData {
): PinnedMessagePreloadData {
const message = _getMessageById(db, pinnedMessage.messageId);
strictAssert(
message != null,
@@ -46,10 +46,10 @@ function _getPinnedMessageRenderData(
return { pinnedMessage, message };
}
export function getPinnedMessagesForConversation(
export function getPinnedMessagesPreloadDataForConversation(
db: ReadableDB,
conversationId: string
): ReadonlyArray<PinnedMessageRenderData> {
): ReadonlyArray<PinnedMessagePreloadData> {
return db.transaction(() => {
const [query, params] = sql`
SELECT * FROM pinnedMessages
@@ -61,7 +61,7 @@ export function getPinnedMessagesForConversation(
.prepare(query)
.all<PinnedMessage>(params)
.map(pinnedMessage => {
return _getPinnedMessageRenderData(db, pinnedMessage);
return _getPinnedMessagePreloadData(db, pinnedMessage);
});
})();
}