@tldraw/editor 3.7.0-canary.f573a67d7d32 → 3.7.0-canary.f9d4bdbb2f2d
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 +3 -1
- package/dist-cjs/index.js +2 -1
- package/dist-cjs/index.js.map +2 -2
- package/dist-cjs/lib/TldrawEditor.js +1 -1
- package/dist-cjs/lib/TldrawEditor.js.map +2 -2
- package/dist-cjs/lib/components/LiveCollaborators.js +2 -1
- package/dist-cjs/lib/components/LiveCollaborators.js.map +2 -2
- package/dist-cjs/lib/components/Shape.js +6 -4
- package/dist-cjs/lib/components/Shape.js.map +2 -2
- package/dist-cjs/lib/components/default-components/DefaultSelectionForeground.js +2 -1
- package/dist-cjs/lib/components/default-components/DefaultSelectionForeground.js.map +2 -2
- package/dist-cjs/lib/editor/Editor.js +8 -2
- package/dist-cjs/lib/editor/Editor.js.map +2 -2
- package/dist-cjs/lib/editor/managers/TextManager.js +9 -15
- package/dist-cjs/lib/editor/managers/TextManager.js.map +2 -2
- package/dist-cjs/lib/editor/shapes/ShapeUtil.js.map +2 -2
- package/dist-cjs/lib/exports/FontEmbedder.js +2 -1
- package/dist-cjs/lib/exports/FontEmbedder.js.map +2 -2
- package/dist-cjs/lib/hooks/useEvent.js +18 -1
- package/dist-cjs/lib/hooks/useEvent.js.map +2 -2
- package/dist-cjs/version.js +3 -3
- package/dist-cjs/version.js.map +1 -1
- package/dist-esm/index.d.mts +3 -1
- package/dist-esm/index.mjs +3 -2
- package/dist-esm/index.mjs.map +2 -2
- package/dist-esm/lib/TldrawEditor.mjs +1 -1
- package/dist-esm/lib/TldrawEditor.mjs.map +2 -2
- package/dist-esm/lib/components/LiveCollaborators.mjs +2 -1
- package/dist-esm/lib/components/LiveCollaborators.mjs.map +2 -2
- package/dist-esm/lib/components/Shape.mjs +6 -4
- package/dist-esm/lib/components/Shape.mjs.map +2 -2
- package/dist-esm/lib/components/default-components/DefaultSelectionForeground.mjs +2 -1
- package/dist-esm/lib/components/default-components/DefaultSelectionForeground.mjs.map +2 -2
- package/dist-esm/lib/editor/Editor.mjs +9 -2
- package/dist-esm/lib/editor/Editor.mjs.map +2 -2
- package/dist-esm/lib/editor/managers/TextManager.mjs +9 -15
- package/dist-esm/lib/editor/managers/TextManager.mjs.map +2 -2
- package/dist-esm/lib/editor/shapes/ShapeUtil.mjs.map +2 -2
- package/dist-esm/lib/exports/FontEmbedder.mjs +2 -1
- package/dist-esm/lib/exports/FontEmbedder.mjs.map +2 -2
- package/dist-esm/lib/hooks/useEvent.mjs +18 -1
- package/dist-esm/lib/hooks/useEvent.mjs.map +2 -2
- package/dist-esm/version.mjs +3 -3
- package/dist-esm/version.mjs.map +1 -1
- package/package.json +7 -7
- package/src/index.ts +1 -1
- package/src/lib/TldrawEditor.tsx +1 -1
- package/src/lib/components/LiveCollaborators.tsx +3 -1
- package/src/lib/components/Shape.tsx +22 -10
- package/src/lib/components/default-components/DefaultSelectionForeground.tsx +4 -1
- package/src/lib/editor/Editor.ts +12 -5
- package/src/lib/editor/managers/TextManager.ts +9 -17
- package/src/lib/editor/shapes/ShapeUtil.ts +1 -1
- package/src/lib/exports/FontEmbedder.ts +2 -1
- package/src/lib/hooks/useEvent.tsx +29 -0
- package/src/version.ts +3 -3
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { useAtom } from '@tldraw/state-react'
|
|
1
2
|
import { assert } from '@tldraw/utils'
|
|
2
3
|
import { useCallback, useDebugValue, useLayoutEffect, useRef } from 'react'
|
|
3
4
|
|
|
@@ -42,3 +43,31 @@ export function useEvent<Args extends Array<unknown>, Result>(
|
|
|
42
43
|
return fn(...args)
|
|
43
44
|
}, [])
|
|
44
45
|
}
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* like {@link useEvent}, but for use in reactive contexts - when the handler function changes, it
|
|
49
|
+
* will invalidate any reactive contexts that call it.
|
|
50
|
+
* @internal
|
|
51
|
+
*/
|
|
52
|
+
export function useReactiveEvent<Args extends Array<unknown>, Result>(
|
|
53
|
+
handler: (...args: Args) => Result
|
|
54
|
+
): (...args: Args) => Result {
|
|
55
|
+
const handlerAtom = useAtom<(...args: Args) => Result>('useReactiveEvent', () => handler)
|
|
56
|
+
|
|
57
|
+
// In a real implementation, this would run before layout effects
|
|
58
|
+
useLayoutEffect(() => {
|
|
59
|
+
handlerAtom.set(handler)
|
|
60
|
+
})
|
|
61
|
+
|
|
62
|
+
useDebugValue(handler)
|
|
63
|
+
|
|
64
|
+
return useCallback(
|
|
65
|
+
(...args: Args) => {
|
|
66
|
+
// In a real implementation, this would throw if called during render
|
|
67
|
+
const fn = handlerAtom.get()
|
|
68
|
+
assert(fn, 'fn does not exist')
|
|
69
|
+
return fn(...args)
|
|
70
|
+
},
|
|
71
|
+
[handlerAtom]
|
|
72
|
+
)
|
|
73
|
+
}
|
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.7.0-canary.
|
|
4
|
+
export const version = '3.7.0-canary.f9d4bdbb2f2d'
|
|
5
5
|
export const publishDates = {
|
|
6
6
|
major: '2024-09-13T14:36:29.063Z',
|
|
7
|
-
minor: '
|
|
8
|
-
patch: '
|
|
7
|
+
minor: '2025-01-07T10:37:33.532Z',
|
|
8
|
+
patch: '2025-01-07T10:37:33.532Z',
|
|
9
9
|
}
|