diff --git a/apps/examples/src/examples/rendering-shape-changes/README.md b/apps/examples/src/examples/rendering-shape-changes/README.md new file mode 100644 index 000000000..a6f95b86d --- /dev/null +++ b/apps/examples/src/examples/rendering-shape-changes/README.md @@ -0,0 +1,9 @@ +--- +title: Rendering shapes change +component: ./RenderingShapesChangeExample.tsx +category: basic +--- + +--- + +Do something when the rendering shapes change. diff --git a/apps/examples/src/examples/rendering-shape-changes/RenderingShapesChangeExample.tsx b/apps/examples/src/examples/rendering-shape-changes/RenderingShapesChangeExample.tsx new file mode 100644 index 000000000..25160d531 --- /dev/null +++ b/apps/examples/src/examples/rendering-shape-changes/RenderingShapesChangeExample.tsx @@ -0,0 +1,27 @@ +import { useCallback } from 'react' +import { TLShape, Tldraw } from 'tldraw' +import 'tldraw/tldraw.css' +import { useChangedShapesReactor } from './useRenderingShapesChange' + +const components = { + InFrontOfTheCanvas: () => { + const onShapesChanged = useCallback((info: { culled: TLShape[]; restored: TLShape[] }) => { + // eslint-disable-next-line no-console + for (const shape of info.culled) console.log('culled: ' + shape.id) + // eslint-disable-next-line no-console + for (const shape of info.restored) console.log('restored: ' + shape.id) + }, []) + + useChangedShapesReactor(onShapesChanged) + + return null + }, +} + +export default function RenderingShapesChangeExample() { + return ( +