summaryrefslogtreecommitdiff
path: root/apps/web/src/components/providers
diff options
context:
space:
mode:
authorMaze Winther <mazewinther@gmail.com>2026-03-25 16:47:22 +0100
committerMaze Winther <mazewinther@gmail.com>2026-03-29 15:48:22 +0200
commit8db3bead13441a5882d8689dfc6a9f09c82375d9 (patch)
treee9d0cafa93904ffcbec3188c37961bcc16c6422d /apps/web/src/components/providers
parent39ea298a9ccba3104c549c0ca079c231981811f5 (diff)
downloadopencut-8db3bead13441a5882d8689dfc6a9f09c82375d9.tar.gz
feat: masks, properties refactor, shaders, storage migrations, and more
Diffstat (limited to 'apps/web/src/components/providers')
-rw-r--r--apps/web/src/components/providers/editor-provider.tsx27
1 files changed, 11 insertions, 16 deletions
diff --git a/apps/web/src/components/providers/editor-provider.tsx b/apps/web/src/components/providers/editor-provider.tsx
index 746cfd16..35e5dfba 100644
--- a/apps/web/src/components/providers/editor-provider.tsx
+++ b/apps/web/src/components/providers/editor-provider.tsx
@@ -3,13 +3,12 @@
import { useEffect, useState } from "react";
import { useRouter } from "next/navigation";
import { Loader2 } from "lucide-react";
+import { EditorCore } from "@/core";
import { useEditor } from "@/hooks/use-editor";
-import {
- useKeybindingsListener,
- useKeybindingDisabler,
-} from "@/hooks/use-keybindings";
+import { useKeybindingsListener } from "@/hooks/use-keybindings";
+import { useKeybindingsStore } from "@/stores/keybindings-store";
import { useEditorActions } from "@/hooks/actions/use-editor-actions";
-import { prefetchFontAtlas } from "@/lib/fonts/google-fonts";
+import { loadFontAtlas } from "@/lib/fonts/google-fonts";
interface EditorProviderProps {
projectId: string;
@@ -17,23 +16,19 @@ interface EditorProviderProps {
}
export function EditorProvider({ projectId, children }: EditorProviderProps) {
- const editor = useEditor();
+ const activeProject = useEditor((e) => e.project.getActiveOrNull());
const router = useRouter();
const [isLoading, setIsLoading] = useState(true);
const [error, setError] = useState<string | null>(null);
- const { disableKeybindings, enableKeybindings } = useKeybindingDisabler();
- const activeProject = editor.project.getActiveOrNull();
+ const { setLoadingProject } = useKeybindingsStore();
useEffect(() => {
- if (isLoading) {
- disableKeybindings();
- } else {
- enableKeybindings();
- }
- }, [isLoading, disableKeybindings, enableKeybindings]);
+ setLoadingProject(isLoading);
+ }, [isLoading, setLoadingProject]);
useEffect(() => {
let cancelled = false;
+ const editor = EditorCore.getInstance();
const loadProject = async () => {
try {
@@ -43,7 +38,7 @@ export function EditorProvider({ projectId, children }: EditorProviderProps) {
if (cancelled) return;
setIsLoading(false);
- prefetchFontAtlas();
+ loadFontAtlas();
} catch (err) {
if (cancelled) return;
@@ -76,7 +71,7 @@ export function EditorProvider({ projectId, children }: EditorProviderProps) {
return () => {
cancelled = true;
};
- }, [projectId, editor, router]);
+ }, [projectId, router]);
if (error) {
return (