feat: update jotai (#9015)

* feat: update jotai in excalidraw package

* feat: update jotai in excalidraw-app

* fix: exports from excalidraw/jotai

* fix: use isolated react hooks

* test: use jotai provider in <Trans /> test

* remove unused package

* refactor & make safer

---------

Co-authored-by: dwelle <5153846+dwelle@users.noreply.github.com>
This commit is contained in:
Arnost Pleskot 2025-01-16 16:59:11 +01:00 committed by GitHub
parent ae6bee3403
commit 8551823da9
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
45 changed files with 179 additions and 169 deletions

View file

@ -8,8 +8,7 @@ import type {
} from "../types";
import { restoreLibraryItems } from "./restore";
import type App from "../components/App";
import { atom } from "jotai";
import { jotaiStore } from "../jotai";
import { atom, editorJotaiStore } from "../editor-jotai";
import type { ExcalidrawElement } from "../element/types";
import { getCommonBoundingBox } from "../element/bounds";
import { AbortError } from "../errors";
@ -191,13 +190,13 @@ class Library {
private notifyListeners = () => {
if (this.updateQueue.length > 0) {
jotaiStore.set(libraryItemsAtom, (s) => ({
editorJotaiStore.set(libraryItemsAtom, (s) => ({
status: "loading",
libraryItems: this.currLibraryItems,
isInitialized: s.isInitialized,
}));
} else {
jotaiStore.set(libraryItemsAtom, {
editorJotaiStore.set(libraryItemsAtom, {
status: "loaded",
libraryItems: this.currLibraryItems,
isInitialized: true,
@ -225,7 +224,7 @@ class Library {
destroy = () => {
this.updateQueue = [];
this.currLibraryItems = [];
jotaiStore.set(libraryItemSvgsCache, new Map());
editorJotaiStore.set(libraryItemSvgsCache, new Map());
// TODO uncomment after/if we make jotai store scoped to each excal instance
// jotaiStore.set(libraryItemsAtom, {
// status: "loading",