From 09373eb4a3f792d96d97d81f4fb86539d76e5702 Mon Sep 17 00:00:00 2001 From: Maze Winther Date: Mon, 30 Jun 2025 19:58:36 +0200 Subject: feat: implement project management features with storage integration, including project creation, deletion, and renaming dialogs --- apps/web/src/app/editor/[project_id]/page.tsx | 116 ++++++++++++++++++++++++++ apps/web/src/app/editor/page.tsx | 114 ------------------------- 2 files changed, 116 insertions(+), 114 deletions(-) create mode 100644 apps/web/src/app/editor/[project_id]/page.tsx delete mode 100644 apps/web/src/app/editor/page.tsx (limited to 'apps/web/src/app/editor') diff --git a/apps/web/src/app/editor/[project_id]/page.tsx b/apps/web/src/app/editor/[project_id]/page.tsx new file mode 100644 index 00000000..3970d72a --- /dev/null +++ b/apps/web/src/app/editor/[project_id]/page.tsx @@ -0,0 +1,116 @@ +"use client"; + +import { useEffect } from "react"; +import { + ResizablePanelGroup, + ResizablePanel, + ResizableHandle, +} from "../../../components/ui/resizable"; +import { MediaPanel } from "../../../components/editor/media-panel"; +// import { PropertiesPanel } from "../../components/editor/properties-panel"; +import { Timeline } from "../../../components/editor/timeline"; +import { PreviewPanel } from "../../../components/editor/preview-panel"; +import { EditorHeader } from "@/components/editor-header"; +import { usePanelStore } from "@/stores/panel-store"; +import { useProjectStore } from "@/stores/project-store"; +import { EditorProvider } from "@/components/editor-provider"; +import { usePlaybackControls } from "@/hooks/use-playback-controls"; + +export default function Editor() { + const { + toolsPanel, + previewPanel, + propertiesPanel, + mainContent, + timeline, + setToolsPanel, + setPreviewPanel, + setPropertiesPanel, + setMainContent, + setTimeline, + } = usePanelStore(); + + const { activeProject, createNewProject } = useProjectStore(); + + usePlaybackControls(); + + useEffect(() => { + if (!activeProject) { + createNewProject("Untitled Project"); + } + }, [activeProject, createNewProject]); + + return ( + +
+ +
+ + + {/* Main content area */} + + {/* Tools Panel */} + + + + + + + {/* Preview Area */} + + + + + + + {/* Properties Panel - Hidden for now but ready */} + {/* + + */} + + + + + + {/* Timeline */} + + + + +
+
+
+ ); +} diff --git a/apps/web/src/app/editor/page.tsx b/apps/web/src/app/editor/page.tsx deleted file mode 100644 index e0013937..00000000 --- a/apps/web/src/app/editor/page.tsx +++ /dev/null @@ -1,114 +0,0 @@ -"use client"; - -import { useEffect } from "react"; -import "./editor.css"; -import { - ResizablePanelGroup, - ResizablePanel, - ResizableHandle, -} from "../../components/ui/resizable"; -import { MediaPanel } from "../../components/editor/media-panel"; -// import { PropertiesPanel } from "../../components/editor/properties-panel"; -import { Timeline } from "../../components/editor/timeline"; -import { PreviewPanel } from "../../components/editor/preview-panel"; -import { EditorHeader } from "@/components/editor-header"; -import { usePanelStore } from "@/stores/panel-store"; -import { useProjectStore } from "@/stores/project-store"; -import { EditorProvider } from "@/components/editor-provider"; -import { usePlaybackControls } from "@/hooks/use-playback-controls"; - -export default function Editor() { - const { - toolsPanel, - previewPanel, - propertiesPanel, - mainContent, - timeline, - setToolsPanel, - setPreviewPanel, - setPropertiesPanel, - setMainContent, - setTimeline, - } = usePanelStore(); - - const { activeProject, createNewProject } = useProjectStore(); - - usePlaybackControls(); - - useEffect(() => { - if (!activeProject) { - createNewProject("Untitled Project"); - } - }, [activeProject, createNewProject]); - - return ( - -
- -
- - - {/* Main content area */} - - {/* Tools Panel */} - - - - - - - {/* Preview Area */} - - - - - - - {/* Properties Panel - Hidden for now but ready */} - {/* - - */} - - - - - - {/* Timeline */} - - - - -
-
-
- ); -} -- cgit v1.3.1