MCPcopy Index your code
hub / github.com/coder/coder / reconcileEditedMessageInCache

Function reconcileEditedMessageInCache

site/src/api/queries/chatMessageEdits.ts:117–148  ·  view source on GitHub ↗
({
	currentData,
	optimisticMessageId,
	responseMessage,
}: {
	currentData: InfiniteData<TypesGen.ChatMessagesResponse> | undefined;
	optimisticMessageId: number;
	responseMessage: TypesGen.ChatMessage;
})

Source from the content-addressed store, hash-verified

115};
116
117export const reconcileEditedMessageInCache = ({
118 currentData,
119 optimisticMessageId,
120 responseMessage,
121}: {
122 currentData: InfiniteData<TypesGen.ChatMessagesResponse> | undefined;
123 optimisticMessageId: number;
124 responseMessage: TypesGen.ChatMessage;
125}): InfiniteData<TypesGen.ChatMessagesResponse> | undefined => {
126 if (!currentData?.pages?.length) {
127 return currentData;
128 }
129
130 const replacedPages = currentData.pages.map((page, pageIndex) => {
131 const preservedMessages = page.messages.filter(
132 (message) =>
133 message.id !== optimisticMessageId && message.id !== responseMessage.id,
134 );
135 if (pageIndex !== 0) {
136 return { ...page, messages: preservedMessages };
137 }
138 return {
139 ...page,
140 messages: upsertFirstPageMessage(preservedMessages, responseMessage),
141 };
142 });
143
144 return {
145 ...currentData,
146 pages: replacedPages,
147 };
148};

Callers 1

editChatMessageFunction · 0.90

Calls 2

upsertFirstPageMessageFunction · 0.85
filterMethod · 0.80

Tested by

no test coverage detected