diff options
Diffstat (limited to 'packages/app/src')
| -rw-r--r-- | packages/app/src/context/global-sync/event-reducer.ts | 18 |
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 |
