bigbluebutton / bbb-playback

GNU Lesser General Public License v3.0
29 stars 40 forks source link

feat(whiteboard): add Tldraw v2 support for BBB 3.0 #261

Closed danielpetri1 closed 7 months ago

danielpetri1 commented 11 months ago

This PR adds support for the playback of recordings performed in BigBlueButton 3.0, specifically for the alpha 18 version of Tldraw v2.

https://github.com/bigbluebutton/bbb-playback/assets/33319791/0da8157b-3f59-49e7-b768-bcba6414d982

Backward compatibility

Based on the BBB version specified in tldraw.json, playback occurs either with Tldraw v1 or v2, using npm's aliasing capabilities. Below is an example utilizing Tldraw v1.

https://github.com/bigbluebutton/bbb-playback/assets/33319791/929cfd9d-6e66-427f-91be-57da2c31c32e

Cursor as a custom Tldraw shape

The cursor was refactored to be a shape in the Tldraw canvas like any other. This change decouples the cursor from the slide size, preparing for BBB's upcoming infinite canvas capabilities. Furthermore, it makes it simple to design custom cursors and integrate Tldraw tools such as the laser pointer once their APIs are in place.

More

I could not setup my development environment with the current ./deploy.sh script. I instead used the script from the last 5.0.2 stable release.

The isModerator property has to be removed from each shape, as its presence causes Tldraw's validation to fail. We could consider removing it from the JSON being sent out (bbb-export-annotations also doesn't require it). Similarly, the isPrecise attribute in the arrow's bindings are missing.

Closes

I could not reproduce the following issues: Closes #248 Closes #257