Skip to content

Commit 607d42f

Browse files
committed
feat(presence): Support for arbitrary data
1 parent f01b8b6 commit 607d42f

File tree

2 files changed

+12
-3
lines changed

2 files changed

+12
-3
lines changed

lib/json1.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -735,11 +735,11 @@ function transformPresence(presence: Presence | null, op: JSONOp, isOwnOperation
735735
const end = transformPosition(presence.end, op)
736736

737737
if (start && end) {
738-
return { start, end }
738+
return { ...presence, start, end }
739739
} else if (start) {
740-
return { start, end: start }
740+
return { ...presence, start, end: start }
741741
} else if (end) {
742-
return { start: end, end }
742+
return { ...presence, start: end, end }
743743
}
744744

745745
return null

test/presence.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,4 +83,13 @@ describe("presences", () => {
8383
presenceAfter
8484
);
8585
});
86+
87+
it("allows arbitrary data in presences", () => {
88+
const op = ["z", 0, { i: "hello" }];
89+
const data = { user: "John Doe", color: "blue" };
90+
const presenceBefore = { start: ["z", 0], end: ["z", 1], data };
91+
const presenceAfter = type.transformPresence(presenceBefore, op);
92+
93+
assert.ok(presenceBefore.data === presenceAfter.data);
94+
});
8695
});

0 commit comments

Comments
 (0)