diff options
| author | Maze Winther <mazewinther@gmail.com> | 2026-03-25 16:47:22 +0100 |
|---|---|---|
| committer | Maze Winther <mazewinther@gmail.com> | 2026-03-29 15:48:22 +0200 |
| commit | 8db3bead13441a5882d8689dfc6a9f09c82375d9 (patch) | |
| tree | e9d0cafa93904ffcbec3188c37961bcc16c6422d /apps/web/src/app/projects/page.tsx | |
| parent | 39ea298a9ccba3104c549c0ca079c231981811f5 (diff) | |
| download | opencut-8db3bead13441a5882d8689dfc6a9f09c82375d9.tar.gz | |
feat: masks, properties refactor, shaders, storage migrations, and more
Diffstat (limited to 'apps/web/src/app/projects/page.tsx')
| -rw-r--r-- | apps/web/src/app/projects/page.tsx | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/apps/web/src/app/projects/page.tsx b/apps/web/src/app/projects/page.tsx index c25d75b9..9618de27 100644 --- a/apps/web/src/app/projects/page.tsx +++ b/apps/web/src/app/projects/page.tsx @@ -7,6 +7,7 @@ import type { KeyboardEvent, MouseEvent } from "react"; import { useEffect, useState } from "react"; import { toast } from "sonner"; import { MigrationDialog } from "@/components/editor/dialogs/migration-dialog"; +import { StoragePersistenceDialog } from "@/components/editor/dialogs/storage-persistence-dialog"; import { Button } from "@/components/ui/button"; import { Card, CardContent } from "@/components/ui/card"; import { Checkbox } from "@/components/ui/checkbox"; @@ -18,7 +19,7 @@ import type { TProjectMetadata, TProjectSortKey, TProjectSortOption, -} from "@/types/project"; +} from "@/lib/project/types"; import { formatTimeCode } from "@/lib/time"; import { formatDate } from "@/utils/date"; import { HugeiconsIcon } from "@hugeicons/react"; @@ -86,6 +87,13 @@ const VIEW_MODE_OPTIONS = [ export default function ProjectsPage() { const { searchQuery, sortKey, sortOrder, viewMode } = useProjectsStore(); const editor = useEditor(); + const sortOption: TProjectSortOption = `${sortKey}-${sortOrder}`; + + const isLoading = useEditor((e) => e.project.getIsLoading()); + const isInitialized = useEditor((e) => e.project.getIsInitialized()); + const projectsToDisplay = useEditor((e) => + e.project.getFilteredAndSortedProjects({ searchQuery, sortOption }), + ); useEffect(() => { if (!editor.project.getIsInitialized()) { @@ -93,18 +101,10 @@ export default function ProjectsPage() { } }, [editor.project]); - const sortOption: TProjectSortOption = `${sortKey}-${sortOrder}`; - const projectsToDisplay = editor.project.getFilteredAndSortedProjects({ - searchQuery, - sortOption, - }); - - const isLoading = editor.project.getIsLoading(); - const isInitialized = editor.project.getIsInitialized(); - return ( <div className="bg-background min-h-screen"> <MigrationDialog /> + <StoragePersistenceDialog /> <ProjectsHeader /> <ProjectsToolbar projectIds={projectsToDisplay.map((p) => p.id)} /> <main className="mx-auto px-4 pt-2 pb-6 flex flex-col gap-4"> |
