MCPcopy Create free account
hub / github.com/Kilo-Org/cloud / restoreMessageInCache

Function restoreMessageInCache

packages/kilo-chat-hooks/src/use-messages.ts:224–253  ·  view source on GitHub ↗
(
  queryClient: ReturnType<typeof useQueryClient>,
  queryKey: readonly unknown[],
  snapshot: Message,
  shouldRestore?: RestoreMessageGuard
)

Source from the content-addressed store, hash-verified

222 * optimistic mutations can pass a guard so newer live events are not replaced
223 * by stale snapshots.
224 */
225export function restoreMessageInCache(
226 queryClient: ReturnType<typeof useQueryClient>,
227 queryKey: readonly unknown[],
228 snapshot: Message,
229 shouldRestore?: RestoreMessageGuard
230): boolean {
231 let restored = false;
232 queryClient.setQueryData<MessageInfiniteData>(queryKey, old => {
233 if (!old) return old;
234 for (let pageIndex = 0; pageIndex < old.pages.length; pageIndex++) {
235 const page = old.pages[pageIndex];
236 if (!page) continue;
237 const messageIndex = page.messages.findIndex(msg => msg.id === snapshot.id);
238 if (messageIndex === -1) continue;
239
240 const current = page.messages[messageIndex];
241 if (!current) return old;
242 if (shouldRestore && !shouldRestore(current)) return old;
243
244 const pages = old.pages.slice();
245 const updatedMessages = page.messages.slice();
246 updatedMessages[messageIndex] = snapshot;
247 pages[pageIndex] = withPageMessages(page, updatedMessages);
248 restored = true;
249 return { ...old, pages };
250 }
251 return old;
252 });
253 return restored;
254}
255
256/**

Callers 4

restoreOptimisticMessageFunction · 0.85
useExecuteActionFunction · 0.85

Calls 1

withPageMessagesFunction · 0.85

Tested by

no test coverage detected