fix(web): #268 multiple new projects bug

This commit is contained in:
Simon Orzel 2025-07-15 23:25:09 +02:00
parent 1f95bb98d6
commit 6df492b661
1 changed files with 26 additions and 13 deletions

View File

@ -1,7 +1,7 @@
"use client";
import { useEffect } from "react";
import { useParams } from "next/navigation";
import { useEffect, useRef } from "react";
import { useParams, useRouter } from "next/navigation";
import {
ResizablePanelGroup,
ResizablePanel,
@ -33,25 +33,38 @@ export default function Editor() {
const { activeProject, loadProject, createNewProject } = useProjectStore();
const params = useParams();
const router = useRouter();
const projectId = params.project_id as string;
const handledProjectIds = useRef<Set<string>>(new Set());
usePlaybackControls();
useEffect(() => {
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");
}
const initProject = async () => {
if (!projectId) return;
if (activeProject?.id === projectId) {
return;
}
if (handledProjectIds.current.has(projectId)) {
return;
}
try {
await loadProject(projectId);
} catch (error) {
handledProjectIds.current.add(projectId);
const newProjectId = await createNewProject("Untitled Project");
router.replace(`/editor/${newProjectId}`);
return;
}
};
initializeProject();
}, [projectId, activeProject, loadProject, createNewProject]);
initProject();
}, [projectId, activeProject?.id, loadProject, createNewProject, router]);
return (
<EditorProvider>