ab807afda3
This adds a store-level "operation end" event which fires at the end of atomic operations. It includes some other changes too: - The `SideEffectManager` now lives in & is a property of the store as `StoreSideEffects`. One benefit to this is that instead of overriding methods on the store to register side effects (meaning the store can only ever be used in one place) the store now calls directly into the side effect manager, which is responsible for dealing with any other callbacks - The history manager's "batch complete" event is gone, in favour of this new event. We were using the batch complete event for only one thing, calling `onChildrenChange` - which meant it wasn't getting called for undo/redo events, which aren't part of a batch. `onChildrenChange` is now called after each atomic store operation affecting children. I've also added a rough pin example which shows (kinda messily) how you might use the operation complete handler to traverse a graph of bindings and resolve constraints between them. ### Change Type - [x] `sdk` — Changes the tldraw SDK - [x] `feature` — New feature ### Release Notes #### Breaking changes `editor.registerBatchCompleteHandler` has been replaced with `editor.registerOperationCompleteHandler` |
||
---|---|---|
.. | ||
e2e | ||
public | ||
src | ||
.gitignore | ||
LICENSE.md | ||
package.json | ||
README.md | ||
tsconfig.json | ||
vercel.json | ||
vite.config.ts |
@tldraw/example
Distributions
You can find tldraw on npm here.
Contribution
Please see our contributing guide. Found a bug? Please submit an issue.
License
The tldraw source code and its distributions are provided under the tldraw license. This license does not permit commercial use. To purchase a commercial license or learn more, please fill out this form.
Trademarks
Copyright (c) 2023-present tldraw Inc. The tldraw name and logo are trademarks of tldraw. Please see our trademark guidelines for info on acceptable usage.
Contact
Find us on Twitter/X at @tldraw.
Community
Have questions, comments or feedback? Join our discord or start a discussion. For the latest news and release notes, check out our Substack.