diff options
| author | Maze Winther <mazewinther@gmail.com> | 2025-07-07 19:06:36 +0200 |
|---|---|---|
| committer | Maze Winther <mazewinther@gmail.com> | 2025-07-07 19:06:36 +0200 |
| commit | bd0c7f22069d1a2e4b2a2d962becaf6b9e942414 (patch) | |
| tree | 595eb9b49f655f7c30b008065c26612077474a82 /apps/web/src/app | |
| parent | 11c0b89bd162fe0cb0633687fe5ad07977956ace (diff) | |
| download | opencut-bd0c7f22069d1a2e4b2a2d962becaf6b9e942414.tar.gz | |
refactor: store media relative to project, add storage for timeline data, and other things
Diffstat (limited to 'apps/web/src/app')
| -rw-r--r-- | apps/web/src/app/editor/[project_id]/page.tsx | 23 |
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> |
