diff options
| author | Maze Winther <mazewinther@gmail.com> | 2025-06-22 13:07:02 +0200 |
|---|---|---|
| committer | Maze Winther <mazewinther@gmail.com> | 2025-06-22 13:07:02 +0200 |
| commit | be970248686c0af7d8506cba8c64bf507419da3d (patch) | |
| tree | 3fd8a716b7adae452f1be6dcdd946533da47ad8a /apps/web/src/app | |
| parent | f2d27e578e6214598d36779f44fb1612764c7b3b (diff) | |
| download | opencut-be970248686c0af7d8506cba8c64bf507419da3d.tar.gz | |
so much stuff???
Diffstat (limited to 'apps/web/src/app')
| -rw-r--r-- | apps/web/src/app/api/auth/[...all]/route.ts | 4 | ||||
| -rw-r--r-- | apps/web/src/app/editor/page.tsx | 66 | ||||
| -rw-r--r-- | apps/web/src/app/fonts/GeistMonoVF.woff | bin | 67864 -> 0 bytes | |||
| -rw-r--r-- | apps/web/src/app/fonts/GeistVF.woff | bin | 66268 -> 0 bytes | |||
| -rw-r--r-- | apps/web/src/app/globals.css | 6 | ||||
| -rw-r--r-- | apps/web/src/app/layout.tsx | 31 | ||||
| -rw-r--r-- | apps/web/src/app/page.tsx | 12 |
7 files changed, 85 insertions, 34 deletions
diff --git a/apps/web/src/app/api/auth/[...all]/route.ts b/apps/web/src/app/api/auth/[...all]/route.ts new file mode 100644 index 00000000..1fb57443 --- /dev/null +++ b/apps/web/src/app/api/auth/[...all]/route.ts @@ -0,0 +1,4 @@ +import { auth } from "@/lib/auth";
+import { toNextJsHandler } from "better-auth/next-js";
+
+export const { POST, GET } = toNextJsHandler(auth);
\ No newline at end of file diff --git a/apps/web/src/app/editor/page.tsx b/apps/web/src/app/editor/page.tsx index 51a448d9..f9f64ee6 100644 --- a/apps/web/src/app/editor/page.tsx +++ b/apps/web/src/app/editor/page.tsx @@ -1,36 +1,80 @@ +"use client"; + +import { useEffect } from "react"; import { ResizablePanelGroup, ResizablePanel, ResizableHandle, } from "../../components/ui/resizable"; -import { MediaPanel } from "../../components/media-panel"; -import { PropertiesPanel } from "../../components/properties-panel"; -import { Timeline } from "../../components/timeline"; -import { PreviewPanel } from "../../components/preview-panel"; +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"; export default function Editor() { + const { + toolsPanel, + previewPanel, + propertiesPanel, + mainContent, + timeline, + setToolsPanel, + setPreviewPanel, + setPropertiesPanel, + setMainContent, + setTimeline, + } = usePanelStore(); + + const { activeProject, createNewProject } = useProjectStore(); + + // Initialize a new project if none exists + useEffect(() => { + if (!activeProject) { + createNewProject("Untitled Project"); + } + }, [activeProject, createNewProject]); + return ( <div className="h-screen w-screen flex flex-col bg-background"> + <EditorHeader /> <ResizablePanelGroup direction="vertical"> - <ResizablePanel defaultSize={50} minSize={30}> + <ResizablePanel + defaultSize={mainContent} + minSize={30} + onResize={setMainContent} + > {/* Main content area */} <ResizablePanelGroup direction="horizontal"> {/* Tools Panel */} - <ResizablePanel defaultSize={20} minSize={15}> + <ResizablePanel + defaultSize={toolsPanel} + minSize={15} + onResize={setToolsPanel} + > <MediaPanel /> </ResizablePanel> <ResizableHandle withHandle /> {/* Preview Area */} - <ResizablePanel defaultSize={60}> + <ResizablePanel + defaultSize={previewPanel} + onResize={setPreviewPanel} + > <PreviewPanel /> </ResizablePanel> <ResizableHandle withHandle /> {/* Properties Panel */} - <ResizablePanel defaultSize={20} minSize={15}> + <ResizablePanel + defaultSize={propertiesPanel} + minSize={15} + onResize={setPropertiesPanel} + > <PropertiesPanel /> </ResizablePanel> </ResizablePanelGroup> @@ -39,7 +83,11 @@ export default function Editor() { <ResizableHandle withHandle /> {/* Timeline */} - <ResizablePanel defaultSize={50} minSize={15}> + <ResizablePanel + defaultSize={timeline} + minSize={15} + onResize={setTimeline} + > <Timeline /> </ResizablePanel> </ResizablePanelGroup> diff --git a/apps/web/src/app/fonts/GeistMonoVF.woff b/apps/web/src/app/fonts/GeistMonoVF.woff Binary files differdeleted file mode 100644 index f2ae185c..00000000 --- a/apps/web/src/app/fonts/GeistMonoVF.woff +++ /dev/null diff --git a/apps/web/src/app/fonts/GeistVF.woff b/apps/web/src/app/fonts/GeistVF.woff Binary files differdeleted file mode 100644 index 1b62daac..00000000 --- a/apps/web/src/app/fonts/GeistVF.woff +++ /dev/null diff --git a/apps/web/src/app/globals.css b/apps/web/src/app/globals.css index 31bd3692..2169dbbc 100644 --- a/apps/web/src/app/globals.css +++ b/apps/web/src/app/globals.css @@ -2,10 +2,6 @@ @tailwind components; @tailwind utilities; -body { - font-family: Arial, Helvetica, sans-serif; -} - @layer base { :root { --background: 0 0% 100%; @@ -32,7 +28,7 @@ body { --chart-3: 197 37% 24%; --chart-4: 43 74% 66%; --chart-5: 27 87% 67%; - --radius: 0.6rem; + --radius: 1rem; --sidebar-background: 0 0% 100%; --sidebar-foreground: 0 0% 3.9%; --sidebar-primary: 0 0% 9%; diff --git a/apps/web/src/app/layout.tsx b/apps/web/src/app/layout.tsx index d7dd18a5..6696e884 100644 --- a/apps/web/src/app/layout.tsx +++ b/apps/web/src/app/layout.tsx @@ -1,20 +1,15 @@ import type { Metadata } from "next"; -import localFont from "next/font/local"; +import { Inter } from "next/font/google"; import { ThemeProvider } from "next-themes"; import { Analytics } from "@vercel/analytics/react"; import "./globals.css"; import { Toaster } from "../components/ui/sonner"; import { TooltipProvider } from "../components/ui/tooltip"; +import { AppProvider } from "@/components/app-provider"; -const geistSans = localFont({ - src: "./fonts/GeistVF.woff", - variable: "--font-geist-sans", - weight: "100 900", -}); -const geistMono = localFont({ - src: "./fonts/GeistMonoVF.woff", - variable: "--font-geist-mono", - weight: "100 900", +const inter = Inter({ + subsets: ["latin"], + variable: "--font-inter", }); export const metadata: Metadata = { @@ -29,15 +24,15 @@ export default function RootLayout({ }>) { return ( <html lang="en" suppressHydrationWarning> - <body - className={`${geistSans.variable} ${geistMono.variable} antialiased`} - > + <body className={`${inter.variable} font-sans antialiased`}> <ThemeProvider attribute="class" forcedTheme="dark" enableSystem> - <TooltipProvider> - {children} - <Analytics /> - <Toaster /> - </TooltipProvider> + <AppProvider> + <TooltipProvider> + {children} + <Analytics /> + <Toaster /> + </TooltipProvider> + </AppProvider> </ThemeProvider> </body> </html> diff --git a/apps/web/src/app/page.tsx b/apps/web/src/app/page.tsx index 9b8a74c6..57967b7a 100644 --- a/apps/web/src/app/page.tsx +++ b/apps/web/src/app/page.tsx @@ -1,3 +1,11 @@ +import { Hero } from "@/components/landing/hero";
+import { Header } from "@/components/header";
+
export default function Home() {
- return <div>Hello World</div>;
-}
\ No newline at end of file + return (
+ <div>
+ <Header />
+ <Hero />
+ </div>
+ );
+}
|
