Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[pull] main from tldraw:main #1

Open
wants to merge 2,124 commits into
base: main
Choose a base branch
from
Open

[pull] main from tldraw:main #1

wants to merge 2,124 commits into from

Conversation

pull[bot]
Copy link

@pull pull bot commented Jul 3, 2022

See Commits and Changes for more details.


Created by pull[bot]

Can you help keep this open source service alive? 💖 Please sponsor : )

@netlify
Copy link

netlify bot commented Jul 3, 2022

Deploy Preview for rafids-tldraw failed.

Name Link
🔨 Latest commit 50e941b
🔍 Latest deploy log https://app.netlify.com/sites/rafids-tldraw/deploys/672a0dc858bd0e00086081bf

@pull pull bot added the ⤵️ pull label Jul 4, 2022
steveruizok and others added 28 commits September 10, 2024 08:33
The editor was already "focused", so it wasn't refocusing the container.
The container needed to be focused.

To reproduce: create a text shape, press escape, press enter to re-edit,
press escape to blur again.

### Change type

- [x] `bugfix`
- [ ] `improvement`
- [ ] `feature`
- [ ] `api`
- [ ] `other`
### Change type

- [ ] `bugfix`
- [ ] `improvement`
- [ ] `feature`
- [ ] `api`
- [x] `other`
Turn on CSP for dotcom. Also, I found another case where `connect-src`
needs to have `data:` added so that we can paste those types of images
from other sites.

### Change type

- [ ] `bugfix`
- [ ] `improvement`
- [ ] `feature`
- [ ] `api`
- [x] `other`
This PR adds a one-time warning about files in tldraw. It's only shown
when the user loads a project with >500 records in the store. Hopefully
this cuts down on the number of people who accidentally delete their
local project. It is only shown once and will be dismissed once closed.

<img width="1267" alt="image"
src="https://github.com/user-attachments/assets/c6cac01d-34e3-4b70-a0d6-a4dfcbbdc56d">

We could also pair this with a "local" chip in the top zone that pops up
a screen like this.

### Change type

- [ ] `bugfix`
- [x] `improvement`
- [ ] `feature`
- [ ] `api`
- [ ] `other`

### Release notes

- Adds save warning.
this is pretty unexpected behavior as it stands.

### Change type

- [ ] `bugfix`
- [ ] `improvement`
- [ ] `feature`
- [ ] `api`
- [x] `other`
These breacrumbs links either didn't have actual content, or the content
was at a different route and it was already visible in the site nav. So
the breadcrumbs weren't providing much value and it's easier right now
to just remove them

- [x] `other`

before: 
<img width="1001" alt="image"
src="https://github.com/user-attachments/assets/128f41ed-5c97-4d1f-9b97-806b1386dd54">

after:
<img width="1019" alt="image"
src="https://github.com/user-attachments/assets/c78ca35a-9e39-488c-a1e3-b30c0ab27cef">
Sometimes, if you open an old room, you'll find that the bookmark image
isn't working. This is often because the website the bookmark is
pointing to has changed, and the image asset that we fetched when you
first loaded the image isn't there any more.

For our new exports with bookmarks, there's also an issue: we can only
embed images that have CORS headers set. Many websites do set these
headers on their open graph etc. images, but not all do. For example,
the new dynamicland website looks like this when bookmarked:
<img width="933" alt="Screenshot 2024-09-05 at 16 51 49"
src="https://github.com/user-attachments/assets/fd314c50-92ca-424f-8e30-327295537a6e">

This diff has our bookmark unfurler also save the OG images to our own
servers. This is similar to how social media sites etc. store these
images for display.

### Change type

- [x] `other`
Double-clicking currently pauses gif's which is odd. This changes is so
that you can unpause them (if they were stopped for reduced motion
reasons). But they can't be paused.

### Change type

- [ ] `bugfix`
- [x] `improvement`
- [ ] `feature`
- [ ] `api`
- [ ] `other`

### Release notes

- Images: dbl-clicking doesn't stop gifs

---------

Co-authored-by: Steve Ruiz <[email protected]>
This PR fixes the local save warning and the watermark.

### Change type

- [x] `bugfix`
Bumped up the weight, switched to Noto Sans mono, turned off ligatures

Before
<img width="719" alt="image"
src="https://github.com/user-attachments/assets/6c12b9a4-6274-46e6-ad7f-bef7350781e2">


After
<img width="710" alt="image"
src="https://github.com/user-attachments/assets/2d41b2ad-b0d2-44f7-a822-2137d12a4639">

Before

<img width="704" alt="image"
src="https://github.com/user-attachments/assets/e37e1019-e433-47e4-adbe-5a31c8530380">


After

<img width="706" alt="image"
src="https://github.com/user-attachments/assets/fa2f2ebf-cdbc-46a6-bad9-87eee3c13939">

just noticing now how incredibly tiny Geist Mono's descenders are. I
think that's a big contributor to the illegibility.


### Change type

- [x] `other`
This looked a bit too much like play/pause in a media player.

Before
<img width="220" alt="image"
src="https://github.com/user-attachments/assets/9eac3bf4-4fa6-4228-a20f-c7b3d218ac15">

After
<img width="185" alt="image"
src="https://github.com/user-attachments/assets/1491fca7-4049-4958-ada3-9c01a5e0a3d7">


### Change type

- [ ] `bugfix`
- [ ] `improvement`
- [ ] `feature`
- [ ] `api`
- [x] `other`
closes INT-278 
closes INT-277

- changed "click here" -> "try it"
- made it so you can click anywhere rather than just the button
- made it use actual tldraw from source, rather than an iframe
- this seems to be a tad slower to load locally, but let's see how it
feels in the preview deploy
- fixed a bug/problem in the focus manager (technically a very minor
breaking change, but I'll add it to the list of breaking changes for
3.0)
- this also fixes the issue where it was jumping to the top of the page
on certain radixy interactions


Before: 
![Kapture 2024-09-10 at 14 45
26](https://github.com/user-attachments/assets/799c26ec-5442-49af-9113-36defd4cc7c3)


After:

![Kapture 2024-09-10 at 14 46
32](https://github.com/user-attachments/assets/171c40ba-243b-4ddb-be8c-7d9e516cb745)

- [x] `other`

---------

Co-authored-by: Mime Čuvalo <[email protected]>
Removes two of the subheadings on the landing page

Before
<img width="845" alt="image"
src="https://github.com/user-attachments/assets/94d18f16-b6aa-46b3-ba8c-727ffc49e057">

After
<img width="814" alt="image"
src="https://github.com/user-attachments/assets/c245f89c-d6f2-41a8-bdf8-3cbdd1b95fd6">

Before
<img width="563" alt="image"
src="https://github.com/user-attachments/assets/909eebd6-408c-4874-bccc-0b3d076d8397">


After

<img width="499" alt="image"
src="https://github.com/user-attachments/assets/ca740670-5425-4e7b-80ec-724ab456d70d">


### Change type

- [ ] `bugfix`
- [ ] `improvement`
- [ ] `feature`
- [ ] `api`
- [x] `other`

closes INT-279
This PR updates the docs site ahead of launch.

### Change type

- [x] `other`
This PR updates the language on "commercial license" to "business
license".

### Change type

- [ ] `bugfix`
- [ ] `improvement`
- [ ] `feature`
- [ ] `api`
- [x] `other`
This PR pulls in the recent updates from @nayounsang 
Thank you!
we can revert this once we start deploying canaries again

Describe what your pull request does. If you can, add GIFs or images
showing the before and after of your change.

### Change type

- [ ] `bugfix`
- [ ] `improvement`
- [ ] `feature`
- [ ] `api`
- [x] `other`
Mimics git bisect, but uses the PR preview links so that you don't have
to update deps, deal with migrations, and rebuilding when bisecting.

### How to use

1. Run `yarn dev-tools`. This will get the last 100 PR numbers, which
you can then bisect over. If you need more PRs that that you can change
it in `scripts/get-pr-numbers.ts` script.
2. Navigate to http://localhost:5420
3. Click `Start bisect`
4. Mark one of the PRs as good and one as bad. Use the preview links to
open the preview deployment of the app at that specific PR.
5. Once you have both a good and a bad PR selected you will see the
current PR marked in blue. Test it out and mark it accordingly. Continue
doing so until the bisect finishes.

In some cases the preview builds are not available (PRs from the
community might not have permissions to build them). In that case you
can use the `Show all buttons` toggle and use a preview build close to
that PR.

You can also use the `Automatically open preview links` to immediately
open the next preview link after you mark the current PR. Helps with
speeding things along.

### Limitations
Multiplayer functionality of preview links is removed after two days, so
this is mostly useful for core editor functionality.

### Change type

- [ ] `bugfix`
- [ ] `improvement`
- [ ] `feature`
- [ ] `api`
- [x] `other`

### Release notes

- Adds biscecting on top of preview links to help us find PRs that broke
some functionality.

---------

Co-authored-by: alex <[email protected]>
Slight stlying fix.
Parsing of some old files failed due to some record types that are no
longer present in our store.

See PRs that removed them: #1493
([user_document](https://github.com/tldraw/tldraw/pull/1493/files#diff-4a4bcc8b6ed0eb5c124a153c3d6e4de7a467ebc0a4d65ff4b18c74dd54fb3dd8R55))
and #1435 ([user and
user_presence](https://github.com/tldraw/tldraw/pull/1435/files#diff-901095d4d90bdb975afedd77a3b456547bb365634d99460d5a1b74d20955ee14R42)).

We could also migrate the records (just like we do a bit lower), but I
guess we can't be certain if we even have a v2 document at this point
🤷‍♂️

### Change type

- [x] `bugfix`
- [ ] `improvement`
- [ ] `feature`
- [ ] `api`
- [ ] `other`

### Release notes

- Fix a but with opening older v2 tldraw files.
Reworks our docs search.
* Long pages are now split up into many search entries according to
their headings
* The full content of pages is included in the search index
* Fine tune the ranking til it feels good

I also removed some old search stuff, and ended up doing a bit of a
drive-by refactor of `ContentDatabase`.

The bulk of the work here was actually extracting the heading and the
plain-text content within them to populate the search index. Check
`parse-markdown.tsx` for that.

### Change type

- [x] `other`

---------

Co-authored-by: Mime Čuvalo <[email protected]>
### Change type

- [ ] `bugfix`
- [ ] `improvement`
- [ ] `feature`
- [ ] `api`
- [x] `other`
Turns out we already have a link on the page to see the source code.
This removes the Edit link for references/examples.

### Change type

- [ ] `bugfix`
- [ ] `improvement`
- [ ] `feature`
- [ ] `api`
- [x] `other`
### Change type

- [ ] `bugfix`
- [ ] `improvement`
- [ ] `feature`
- [ ] `api`
- [x] `other`
Right now, we render the entire docs site dynamically for each request.
It's really slow! This is what the timing waterfall looks like for just
fetching the initial HTML of the editor reference page:
<img width="893" alt="Screenshot 2024-09-11 at 12 03 12"
src="https://github.com/user-attachments/assets/2d200691-13f8-4f2b-9548-73a3b6131c30">

We don't need to do this, as the content is completely static and never
changes between deploys. This diff uses `generateStaticParams` to make
sure next pre-renders all of our content. Now, the waterfall graph looks
like this:
<img width="890" alt="Screenshot 2024-09-11 at 12 03 21"
src="https://github.com/user-attachments/assets/8c7f5837-9d6a-470d-9988-9f5ce11bd9f2">

8.37s -> 121ms is a speed up of about 69x. Nice!

### Change type

- [x] `other`
I didn't dig into when/where this regressed but we've changed a lot in
this logic so I'm not surprised.

### Change type

- [x] `bugfix`
- [ ] `improvement`
- [ ] `feature`
- [ ] `api`
- [ ] `other`

### Release notes

- Pasting: fix image pasting from Excalidraw.
This is a followup to #4502 that makes sure we correctly migrate the
data.

### Change type

- [ ] `bugfix`
- [x] `improvement`
- [ ] `feature`
- [ ] `api`
- [ ] `other`

### Release notes

- Improve loading of files.
steveruizok and others added 30 commits October 28, 2024 13:28
This PR improves the appearance of the signed-out layout on mobile.

<img width="745" alt="image"
src="https://github.com/user-attachments/assets/a1abdcb9-1163-419d-a67c-7ac0e2509496">

- [x] `other`

---------

Co-authored-by: Mime Čuvalo <[email protected]>
This PR improves the hover effects on the page menu.

Before
![Kapture 2024-10-25 at 15 37
33](https://github.com/user-attachments/assets/dcd640e4-597f-427c-9df4-62269f96a339)

After
![Kapture 2024-10-25 at 15 43
42](https://github.com/user-attachments/assets/e00bf961-d360-4996-b579-0e2dadf8824d)

### Change type

- [ ] `bugfix`
- [x] `improvement`
- [ ] `feature`
- [ ] `api`
- [ ] `other`

### Release notes

- Improve the page menu hover effects.
…4798)

This PR improves and creates functionality on the backend.

For the most part, simple changes such as creating a file or changing
its name rely on optimistic updates. However, some actions rely on
either sending information to the server directly. While we can make
optimistic updates in these situations, we also need to revert those
changes if the request fails.

## Duplicating files

This PR adds duplication on the server. Previously, the duplicate
feature required that the duplicating file be open, so duplicating other
files (from the sidebar) would duplicate the current open file instead.
Now the server will pull the latest file from the tldraw worker and
duplicate that instead.

If the user is viewing the duplicated page, we redirect them to the new
page.

## Deleting / forgetting files

This PR adds deletion on the server. If the user owns a file, they will
optimistically delete the file and all states associated with the file;
if the user does not, then they'll only "forget" the file by
optimistically deleting all of their own states associated with the
file. Meanwhile, the server will actually delete the file and the file's
published snapshot. If the delete fails, the user's optimistic updates
will be reversed.

If the user is viewing the deleted / forgotten file, we redirect them to
the root.

## Publishing / un-publishing files

This PR adds publishing on the server. Previously, the user would upload
the current editor state to the server. Now, the server pulls the latest
file from the tldraw worker and creates a published snapshot based on
that instead.

I'd still like to build the "publish history" of versions that a user
has published for a given file, rather than overwriting the single
published snapshot file.

## Creating files

This PR adds support for .tldr file drops. Files are created on the
server and then added to the user's own files.

## Cleanup

The sync-worker was getting pretty messy so I did some cleanup. Mostly,
I've moved the endpoints that are related to the app to a `tla` folder,
as I've done elsewhere. It wasn't clear to me which endpoints were
"purely" working for the app layer and which weren't.

### Change type

- [x] `other`

---------

Co-authored-by: David Sheldrick <[email protected]>
Fix the imported css in the docs.

### Change type

- [x] `bugfix`
- [ ] `improvement`
- [ ] `feature`
- [ ] `api`
- [ ] `other`

### Test plan

No tests added

- [ ] Unit tests
- [ ] End to end tests

### Release notes

- Fixed a bug with tutorial documentation QuickStart. It did not import
'tldraw/tldraw.css' in the code snippet
This PR adds a maximum limit to the number of files a user can create.

It adds a (provisional?) config property to the app for these constants.

### Change type

- [x] `other`

Co-authored-by: Mitja Bezenšek <[email protected]>
Update vite. Maybe this fixes that aborted loading thing

### Change type


- [x] `other`
Organize file paths. Should help us stay a bit more consistent when
defining and using paths of our app.

### Change type

- [ ] `bugfix`
- [x] `improvement`
- [ ] `feature`
- [ ] `api`
- [ ] `other`

### Release notes

- Help with tla route / paths organization.
Declutter the printout in CI.

### Change type

- [ ] `bugfix`
- [x] `improvement`
- [ ] `feature`
- [ ] `api`
- [ ] `other`

### Release notes

- Declutter the printout for e2e tests in CI.
This PR makes it so that

- if you visit a URL for a private file and you are signed out, you see
this
<img width="546" alt="image"
src="https://github.com/user-attachments/assets/1cd546e2-6b95-478f-be8e-51166635de1c">
Before this PR you'd be redirected immediately to a sign in page, which
is disorienting and not necessarily what the user should have to do.
- If you visit a URL for a private file and you are signed in, you see
this.
<img width="1137" alt="image"
src="https://github.com/user-attachments/assets/39bd8f5c-ad31-4571-b923-be4a766d3e20">
Before this PR you would see a flash of the sidebar and then it'd
immediately disappear, after which you'd only see the error message with
a 'return to tldraw' link that took you back to `/`.

In order to achieve all this I had to do some minor refactorings which
I'll write up on monday.



### Change type


- [x] `other`
Fixed loading of published snapshots.

### Change type

- [x] `bugfix`
- [ ] `improvement`
- [ ] `feature`
- [ ] `api`
- [ ] `other`

### Release notes

- Fix loading of published snapshots.
### Change type

- [x] `bugfix`
- [ ] `improvement`
- [ ] `feature`
- [ ] `api`
- [x] `other`


### Release notes

- Fix NPE bug with release pages on docs
The user thing wasn't hooked up to sync properly

### Change type

- [x] `other`
The app was going into error mode when the ipad went to sleep. let's see
if this fixes it.

### Change type

- [x] `bugfix`


### Release notes

- Fixed a bug causing the app to crash on ipad when the ipad goes to
sleep.
Added event tracking for:

- [x] File share menu - invite and publish tabs
- [x]  Anon landing page
- [x] Account menu
- [x] sidebar
- [x] Delete file dialog
- [x] rename action in file menu

### Change type

- [ ] `bugfix`
- [ ] `improvement`
- [x] `feature`
- [ ] `api`
- [ ] `other`

### Test plan

1. Create a shape...
2.

- [ ] Unit tests
- [ ] End to end tests

### Release notes

- Fixed a bug with…
We now store all the published snapshots so that we could expose
published file history in the future. The way it works is:
* `/parentSlug/publishedSlug` aways contains the latest published
snapshot
* we now also store the snapshot under
`/parentSlug/publishedSlug|timeOfPublish` to keep track of all the
published changes.

These can later be retrieved by listing everything under the
`parentSlug`:
```ts
const publishedRoomSnapshots = await env.ROOM_SNAPSHOTS.list({
	prefix: getR2KeyForRoom({ slug: `${parentSlug}`, isApp: true }),
})
```

![CleanShot 2024-10-30 at 12 20
12@2x](https://github.com/user-attachments/assets/4f161a3f-9ba6-4c88-b267-bf4246c7340f)

Resolves INT-414

### Change type

- [ ] `bugfix`
- [x] `improvement`
- [ ] `feature`
- [ ] `api`
- [ ] `other`

### Release notes

- Store all the published snapshots instead of only the latest one.
This starts rethinking our i18n story, at least at the botcom level.
- introduces (brings back) `react-intl` which lets start doing more
complex translations (being able to include HTML in sentences), do
pluralization, time, etc.
- adds a i18n middle layer to auto-generate ID's based on their hash,
otherwise annoying to do this.
- you can see the different uses, there is the `<F>` tag for translated
React items
- in other cases, you use `defineMessages`/`formatMessage` for things
like alt/aria-labels/tooltips.
- adds some hidden languages like "accented" to show which where things
are untranslated.
- similarly, adds a debug mode to add an annoying red text shadow to
highlight things that are untranslated.
- also adds a looooooong language for languages like German where things
start breaking the UI (basically tests UI to where we should have some
ellipsis or other considerations)

- i18n cheat sheet:
https://www.notion.so/tldraw/i18n-cheat-sheet-1223e4c324c080cf8e64c2b67f47378f

This has a new App-level set of debug items btw:
<img width="1500" alt="Screenshot 2024-10-25 at 23 02 44"
src="https://github.com/user-attachments/assets/f0c24503-42aa-4dd5-8047-64ebffb661c0">


### Change type

- [ ] `bugfix`
- [ ] `improvement`
- [ ] `feature`
- [ ] `api`
- [x] `other`

---------

Co-authored-by: alex <[email protected]>
Resets the db between tests.

### Change type

- [ ] `bugfix`
- [x] `improvement`
- [ ] `feature`
- [ ] `api`
- [ ] `other`

### Release notes

- Isolates tests by resetting the db.
Add sharing tests (inviting and publishing).

### Change type

- [ ] `bugfix`
- [x] `improvement`
- [ ] `feature`
- [ ] `api`
- [ ] `other`

### Release notes

- Add sharing tests (inviting and publishing).
related to #4822

avoid this missing icon:
<img width="447" alt="Screenshot 2024-10-29 at 14 14 11"
src="https://github.com/user-attachments/assets/8f67ee07-fba4-4406-b674-f787b3ce5599">


### Change type

- [ ] `bugfix`
- [ ] `improvement`
- [ ] `feature`
- [ ] `api`
- [x] `other`
this makes the rooms unlisted, not private by default. the ID is not
guessable which gives privacy but doesn't ruin / complicate the UX flow
of sharing the file with someone.

### Change type

- [ ] `bugfix`
- [ ] `improvement`
- [ ] `feature`
- [ ] `api`
- [x] `other`
this adds `readonlyOk` to a bunch of places. lemme know if there are
concerns here but i think this should be ok, if we plan on keeping the
sidebar around for published+logged in.

### Change type

- [ ] `bugfix`
- [ ] `improvement`
- [ ] `feature`
- [ ] `api`
- [x] `other`
`ensureStoreIsUsable` is marked internal and should probably stay that
way? But it makes sense to always call it after `mergeRemoteChanges`
(which we already do)

### Change type


- [x] `improvement`

### Release notes

- Add store consistency checks during `mergeRemoteChanges`
This PR includes a handful of changes designed to improve the site's
performance in search. This includes:

- tightening up meta tags in head
- adding some visually hidden HTML content
- adding a minimal sitemap
- moving core styles into a style tag so that things don't load wrong
prematurely

If you have any other thoughts, let's try them!

### Change type

- [ ] `bugfix`
- [ ] `improvement`
- [ ] `feature`
- [ ] `api`
- [x] `other`
This PR stubs a few more end to end tests as todos.

### Change type

- [ ] `bugfix`
- [ ] `improvement`
- [ ] `feature`
- [ ] `api`
- [x] `other`
This PR allows for better control over scale when using the image export
utilities in tldraw.

- `scale` is used for just the output scale of an image, relative to the
size in tldraw
- `pixelRatio` is used for the pixelRatio scale, default is 2

A shape that is 100x100 in tldraw:
- with { scale: 1 } should export as a 100x100 svg
- with { scale: 2 } should export as a 200x200 svg
- with { scale: 1, pixelRatio: 1 } should export as a 100x100 png at
72dpi
- with { scale: 1, pixelRatio: 2 } should export as a 200x200 png at
144dpi
- with { scale: 2, pixelRatio: 2 } should export as a 400x400 png at
144dpi

Note, I tried deprecating scale instead of renaming to avoid the
breaking change, but I don't think we can get away with that since it
gets spread in from other places (where scale is used for actual 1x 2x
scale).

### Change type

- [ ] `bugfix`
- [ ] `improvement`
- [ ] `feature`
- [x] `api`
- [ ] `other`

### Test plan

1. Export an image at scale 1.
2. Export an image at scale 2.
2. Export an image at scale 3.

### Release notes

- Improved treatment of `scale` in image copy / export utilities.
This was asked on discord
https://discord.com/channels/859816885297741824/1298916572093612062/1298916572093612062

let's let people turn off text creation on double click?

### Change type


- [x] `feature`


### Release notes

- Add option to disable text creation on double click
`createTextOnCanvasDoubleClick`

---------

Co-authored-by: Steve Ruiz <[email protected]>
followup to #4684 and
#4686
was on my todo list to restore some of the responsiveness, esp. on
slower networks


https://github.com/user-attachments/assets/6a52039d-40b0-4d4b-98f4-fde08665dfa2

### Change type

- [ ] `bugfix`
- [ ] `improvement`
- [ ] `feature`
- [ ] `api`
- [x] `other`

---------

Co-authored-by: Steve Ruiz <[email protected]>
#4694 introduced a regression whilst fixing a bug. #4749 fixed that
regression whilst regressing the bug that #4694 was meant to fix. this
diff fixes both bugs.

### Change type

- [x] `bugfix`

### Release notes

- Prevent arrows being clipped incorrectly when multiple tldraw
instances or exports are present in the dom.
This PR removes focus outlines on buttons. There are persistent bugs
with menu items that look cheap and bad and which we haven't been able
to solve. If we solve them then we can bring back the outlines.

![Kapture 2024-11-05 at 09 29
41](https://github.com/user-attachments/assets/063cc2e4-032c-47b7-981a-761729b79951)

### Change type

- [x] `bugfix`

### Release notes

- Fixed a bug with focus outlines appearing in menu items at the wrong
time.
This PR fixes shapes getting stuck in the 'erasing' state.

### Change type

- [x] `bugfix`
- [ ] `improvement`
- [ ] `feature`
- [ ] `api`
- [ ] `other`

### Test plan

See: #4860

- [ ] Unit tests
- [ ] End to end tests

### Release notes

- Fixed a bug with shapes getting stuck in the translucent erasing
state.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.