45 lines
1.2 KiB
TypeScript
45 lines
1.2 KiB
TypeScript
"use client";
|
|
|
|
import {
|
|
Dialog,
|
|
DialogContent,
|
|
DialogDescription,
|
|
DialogHeader,
|
|
DialogTitle,
|
|
} from "@/components/ui/dialog";
|
|
import { useEditor } from "@/editor/use-editor";
|
|
import { Loader2 } from "lucide-react";
|
|
|
|
export function MigrationDialog() {
|
|
const editor = useEditor();
|
|
const migrationState = editor.project.getMigrationState();
|
|
|
|
if (!migrationState.isMigrating) return null;
|
|
|
|
const title = migrationState.projectName
|
|
? "Updating project"
|
|
: "Updating projects";
|
|
const description = migrationState.projectName
|
|
? `Upgrading "${migrationState.projectName}" from v${migrationState.fromVersion} to v${migrationState.toVersion}`
|
|
: `Upgrading projects from v${migrationState.fromVersion} to v${migrationState.toVersion}`;
|
|
|
|
return (
|
|
<Dialog open={true}>
|
|
<DialogContent
|
|
className="sm:max-w-md"
|
|
onPointerDownOutside={(event) => event.preventDefault()}
|
|
onEscapeKeyDown={(event) => event.preventDefault()}
|
|
>
|
|
<DialogHeader>
|
|
<DialogTitle>{title}</DialogTitle>
|
|
<DialogDescription>{description}</DialogDescription>
|
|
</DialogHeader>
|
|
|
|
<div className="flex items-center justify-center py-4">
|
|
<Loader2 className="text-muted-foreground size-8 animate-spin" />
|
|
</div>
|
|
</DialogContent>
|
|
</Dialog>
|
|
);
|
|
}
|