mirror of
https://github.com/OpenCut-app/OpenCut.git
synced 2026-07-13 21:52:53 +02:00
feat: masks, properties refactor, shaders, storage migrations, and more
This commit is contained in:
@@ -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">
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { create } from "zustand";
|
||||
import { persist } from "zustand/middleware";
|
||||
import type { TProjectSortKey } from "@/types/project";
|
||||
import type { TProjectSortKey } from "@/lib/project/types";
|
||||
|
||||
export type ProjectsViewMode = "grid" | "list";
|
||||
|
||||
|
||||
Reference in New Issue
Block a user