@tldraw/editor 3.13.0-canary.d403fcffd1eb → 3.13.0-canary.da15a0065ba5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist-cjs/index.d.ts +1 -0
- package/dist-cjs/index.js +1 -1
- package/dist-cjs/lib/editor/Editor.js +24 -18
- package/dist-cjs/lib/editor/Editor.js.map +3 -3
- package/dist-cjs/version.js +3 -3
- package/dist-cjs/version.js.map +1 -1
- package/dist-esm/index.d.mts +1 -0
- package/dist-esm/index.mjs +1 -1
- package/dist-esm/lib/editor/Editor.mjs +24 -18
- package/dist-esm/lib/editor/Editor.mjs.map +3 -3
- package/dist-esm/version.mjs +3 -3
- package/dist-esm/version.mjs.map +1 -1
- package/package.json +7 -7
- package/src/lib/editor/Editor.ts +21 -17
- package/src/version.ts +3 -3
package/dist-esm/version.mjs
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
const version = "3.13.0-canary.
|
|
1
|
+
const version = "3.13.0-canary.da15a0065ba5";
|
|
2
2
|
const publishDates = {
|
|
3
3
|
major: "2024-09-13T14:36:29.063Z",
|
|
4
|
-
minor: "2025-04-
|
|
5
|
-
patch: "2025-04-
|
|
4
|
+
minor: "2025-04-17T09:56:11.498Z",
|
|
5
|
+
patch: "2025-04-17T09:56:11.498Z"
|
|
6
6
|
};
|
|
7
7
|
export {
|
|
8
8
|
publishDates,
|
package/dist-esm/version.mjs.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/version.ts"],
|
|
4
|
-
"sourcesContent": ["// This file is automatically generated by internal/scripts/refresh-assets.ts.\n// Do not edit manually. Or do, I'm a comment, not a cop.\n\nexport const version = '3.13.0-canary.
|
|
4
|
+
"sourcesContent": ["// This file is automatically generated by internal/scripts/refresh-assets.ts.\n// Do not edit manually. Or do, I'm a comment, not a cop.\n\nexport const version = '3.13.0-canary.da15a0065ba5'\nexport const publishDates = {\n\tmajor: '2024-09-13T14:36:29.063Z',\n\tminor: '2025-04-17T09:56:11.498Z',\n\tpatch: '2025-04-17T09:56:11.498Z',\n}\n"],
|
|
5
5
|
"mappings": "AAGO,MAAM,UAAU;AAChB,MAAM,eAAe;AAAA,EAC3B,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AACR;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tldraw/editor",
|
|
3
3
|
"description": "A tiny little drawing app (editor).",
|
|
4
|
-
"version": "3.13.0-canary.
|
|
4
|
+
"version": "3.13.0-canary.da15a0065ba5",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "tldraw Inc.",
|
|
7
7
|
"email": "hello@tldraw.com"
|
|
@@ -48,12 +48,12 @@
|
|
|
48
48
|
"@tiptap/core": "^2.9.1",
|
|
49
49
|
"@tiptap/pm": "^2.9.1",
|
|
50
50
|
"@tiptap/react": "^2.9.1",
|
|
51
|
-
"@tldraw/state": "3.13.0-canary.
|
|
52
|
-
"@tldraw/state-react": "3.13.0-canary.
|
|
53
|
-
"@tldraw/store": "3.13.0-canary.
|
|
54
|
-
"@tldraw/tlschema": "3.13.0-canary.
|
|
55
|
-
"@tldraw/utils": "3.13.0-canary.
|
|
56
|
-
"@tldraw/validate": "3.13.0-canary.
|
|
51
|
+
"@tldraw/state": "3.13.0-canary.da15a0065ba5",
|
|
52
|
+
"@tldraw/state-react": "3.13.0-canary.da15a0065ba5",
|
|
53
|
+
"@tldraw/store": "3.13.0-canary.da15a0065ba5",
|
|
54
|
+
"@tldraw/tlschema": "3.13.0-canary.da15a0065ba5",
|
|
55
|
+
"@tldraw/utils": "3.13.0-canary.da15a0065ba5",
|
|
56
|
+
"@tldraw/validate": "3.13.0-canary.da15a0065ba5",
|
|
57
57
|
"@types/core-js": "^2.5.8",
|
|
58
58
|
"@use-gesture/react": "^10.3.1",
|
|
59
59
|
"classnames": "^2.5.1",
|
package/src/lib/editor/Editor.ts
CHANGED
|
@@ -42,6 +42,7 @@ import {
|
|
|
42
42
|
TLImageAsset,
|
|
43
43
|
TLInstance,
|
|
44
44
|
TLInstancePageState,
|
|
45
|
+
TLInstancePresence,
|
|
45
46
|
TLNoteShape,
|
|
46
47
|
TLPOINTER_ID,
|
|
47
48
|
TLPage,
|
|
@@ -2575,14 +2576,25 @@ export class Editor extends EventEmitter<TLEventMap> {
|
|
|
2575
2576
|
return baseCamera
|
|
2576
2577
|
}
|
|
2577
2578
|
|
|
2579
|
+
private _getFollowingPresence(targetUserId: string | null) {
|
|
2580
|
+
const visited = [this.user.getId()]
|
|
2581
|
+
const collaborators = this.getCollaborators()
|
|
2582
|
+
let leaderPresence = null as null | TLInstancePresence
|
|
2583
|
+
while (targetUserId && !visited.includes(targetUserId)) {
|
|
2584
|
+
leaderPresence = collaborators.find((c) => c.userId === targetUserId) ?? null
|
|
2585
|
+
targetUserId = leaderPresence?.followingUserId ?? null
|
|
2586
|
+
if (leaderPresence) {
|
|
2587
|
+
visited.push(leaderPresence.userId)
|
|
2588
|
+
}
|
|
2589
|
+
}
|
|
2590
|
+
return leaderPresence
|
|
2591
|
+
}
|
|
2592
|
+
|
|
2578
2593
|
@computed
|
|
2579
2594
|
private getViewportPageBoundsForFollowing(): null | Box {
|
|
2580
|
-
const
|
|
2581
|
-
if (!followingUserId) return null
|
|
2582
|
-
const leaderPresence = this.getCollaborators().find((c) => c.userId === followingUserId)
|
|
2583
|
-
if (!leaderPresence) return null
|
|
2595
|
+
const leaderPresence = this._getFollowingPresence(this.getInstanceState().followingUserId)
|
|
2584
2596
|
|
|
2585
|
-
if (!leaderPresence
|
|
2597
|
+
if (!leaderPresence?.camera || !leaderPresence?.screenBounds) return null
|
|
2586
2598
|
|
|
2587
2599
|
// Fit their viewport inside of our screen bounds
|
|
2588
2600
|
// 1. calculate their viewport in page space
|
|
@@ -3781,15 +3793,6 @@ export class Editor extends EventEmitter<TLEventMap> {
|
|
|
3781
3793
|
// if we were already following someone, stop following them
|
|
3782
3794
|
this.stopFollowingUser()
|
|
3783
3795
|
|
|
3784
|
-
const leaderPresences = this._getCollaboratorsQuery()
|
|
3785
|
-
.get()
|
|
3786
|
-
.filter((p) => p.userId === userId)
|
|
3787
|
-
|
|
3788
|
-
if (!leaderPresences.length) {
|
|
3789
|
-
console.warn('User not found')
|
|
3790
|
-
return this
|
|
3791
|
-
}
|
|
3792
|
-
|
|
3793
3796
|
const thisUserId = this.user.getId()
|
|
3794
3797
|
|
|
3795
3798
|
if (!thisUserId) {
|
|
@@ -3797,13 +3800,14 @@ export class Editor extends EventEmitter<TLEventMap> {
|
|
|
3797
3800
|
// allow to continue since it's probably fine most of the time.
|
|
3798
3801
|
}
|
|
3799
3802
|
|
|
3800
|
-
|
|
3801
|
-
|
|
3803
|
+
const leaderPresence = this._getFollowingPresence(userId)
|
|
3804
|
+
|
|
3805
|
+
if (!leaderPresence) {
|
|
3802
3806
|
return this
|
|
3803
3807
|
}
|
|
3804
3808
|
|
|
3805
3809
|
const latestLeaderPresence = computed('latestLeaderPresence', () => {
|
|
3806
|
-
return this.
|
|
3810
|
+
return this._getFollowingPresence(userId)
|
|
3807
3811
|
})
|
|
3808
3812
|
|
|
3809
3813
|
transact(() => {
|
package/src/version.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
// This file is automatically generated by internal/scripts/refresh-assets.ts.
|
|
2
2
|
// Do not edit manually. Or do, I'm a comment, not a cop.
|
|
3
3
|
|
|
4
|
-
export const version = '3.13.0-canary.
|
|
4
|
+
export const version = '3.13.0-canary.da15a0065ba5'
|
|
5
5
|
export const publishDates = {
|
|
6
6
|
major: '2024-09-13T14:36:29.063Z',
|
|
7
|
-
minor: '2025-04-
|
|
8
|
-
patch: '2025-04-
|
|
7
|
+
minor: '2025-04-17T09:56:11.498Z',
|
|
8
|
+
patch: '2025-04-17T09:56:11.498Z',
|
|
9
9
|
}
|