summaryrefslogtreecommitdiff
path: root/apps/web/src/app/editor
diff options
context:
space:
mode:
Diffstat (limited to 'apps/web/src/app/editor')
-rw-r--r--apps/web/src/app/editor/[project_id]/page.tsx23
1 files changed, 18 insertions, 5 deletions
diff --git a/apps/web/src/app/editor/[project_id]/page.tsx b/apps/web/src/app/editor/[project_id]/page.tsx
index 8eee5e0a..011c0c60 100644
--- a/apps/web/src/app/editor/[project_id]/page.tsx
+++ b/apps/web/src/app/editor/[project_id]/page.tsx
@@ -1,6 +1,7 @@
"use client";
import { useEffect } from "react";
+import { useParams } from "next/navigation";
import {
ResizablePanelGroup,
ResizablePanel,
@@ -28,15 +29,27 @@ export default function Editor() {
setTimeline,
} = usePanelStore();
- const { activeProject, createNewProject } = useProjectStore();
+ const { activeProject, loadProject, createNewProject } = useProjectStore();
+ const params = useParams();
+ const projectId = params.project_id as string;
usePlaybackControls();
useEffect(() => {
- if (!activeProject) {
- createNewProject("Untitled Project");
- }
- }, [activeProject, createNewProject]);
+ const initializeProject = async () => {
+ if (projectId && (!activeProject || activeProject.id !== projectId)) {
+ try {
+ await loadProject(projectId);
+ } catch (error) {
+ console.error("Failed to load project:", error);
+ // If project doesn't exist, create a new one
+ await createNewProject("Untitled Project");
+ }
+ }
+ };
+
+ initializeProject();
+ }, [projectId, activeProject, loadProject, createNewProject]);
return (
<EditorProvider>