summaryrefslogtreecommitdiffhomepage
path: root/packages/app/src/context
diff options
context:
space:
mode:
Diffstat (limited to 'packages/app/src/context')
-rw-r--r--packages/app/src/context/global-sync/event-reducer.ts18
1 files changed, 18 insertions, 0 deletions
diff --git a/packages/app/src/context/global-sync/event-reducer.ts b/packages/app/src/context/global-sync/event-reducer.ts
index fa1a43d47..66fcac66d 100644
--- a/packages/app/src/context/global-sync/event-reducer.ts
+++ b/packages/app/src/context/global-sync/event-reducer.ts
@@ -231,6 +231,24 @@ export function applyDirectoryEvent(input: {
}
break
}
+ case "message.part.delta": {
+ const props = event.properties as { messageID: string; partID: string; field: string; delta: string }
+ const parts = input.store.part[props.messageID]
+ if (!parts) break
+ const result = Binary.search(parts, props.partID, (p) => p.id)
+ if (!result.found) break
+ input.setStore(
+ "part",
+ props.messageID,
+ produce((draft) => {
+ const part = draft[result.index]
+ const field = props.field as keyof typeof part
+ const existing = part[field] as string | undefined
+ ;(part[field] as string) = (existing ?? "") + props.delta
+ }),
+ )
+ break
+ }
case "vcs.branch.updated": {
const props = event.properties as { branch: string }
if (input.store.vcs?.branch === props.branch) break