mirror of
https://github.com/Portabase/portabase.git
synced 2026-07-14 11:16:13 +02:00
Adding loading.tsx
This commit is contained in:
@@ -0,0 +1,9 @@
|
|||||||
|
import {LoadingSpinner} from "@/components/wrappers/Loading/LoadingSpinner";
|
||||||
|
|
||||||
|
export default function Loading() {
|
||||||
|
return (
|
||||||
|
<div className="w-full h-full flex flex-col items-center justify-center">
|
||||||
|
<LoadingSpinner size={50} />
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
||||||
@@ -1,13 +1,10 @@
|
|||||||
import {PageParams} from "@/types/next";
|
import {PageParams} from "@/types/next";
|
||||||
import {prisma} from "@/prisma";
|
import {prisma} from "@/prisma";
|
||||||
import {notFound, usePathname, useRouter} from "next/navigation";
|
import {notFound} from "next/navigation";
|
||||||
import {Page, PageActions, PageContent, PageDescription, PageTitle} from "@/features/layout/page";
|
import {Page, PageActions, PageContent, PageDescription, PageTitle} from "@/features/layout/page";
|
||||||
import {BackupButton} from "@/components/wrappers/dashboard/backup/backup-button/backup-button";
|
import {BackupButton} from "@/components/wrappers/dashboard/backup/backup-button/backup-button";
|
||||||
import {DatabaseTabs} from "@/components/wrappers/dashboard/Projects/Database/DatabaseTabs";
|
import {DatabaseTabs} from "@/components/wrappers/dashboard/Projects/Database/DatabaseTabs";
|
||||||
import {DatabaseKpi} from "@/components/wrappers/dashboard/Projects/Database/DatabaseKpi";
|
import {DatabaseKpi} from "@/components/wrappers/dashboard/Projects/Database/DatabaseKpi";
|
||||||
import Link from "next/link";
|
|
||||||
import {buttonVariants} from "@/components/ui/button";
|
|
||||||
import {GearIcon} from "@radix-ui/react-icons";
|
|
||||||
import {EditButton} from "@/components/wrappers/dashboard/database/EditButton/EditButton";
|
import {EditButton} from "@/components/wrappers/dashboard/database/EditButton/EditButton";
|
||||||
import {CronButton} from "@/components/wrappers/dashboard/database/CronButton/CronButton";
|
import {CronButton} from "@/components/wrappers/dashboard/database/CronButton/CronButton";
|
||||||
|
|
||||||
@@ -31,12 +28,18 @@ export default async function RoutePage(props: PageParams<{ databaseId: string }
|
|||||||
},
|
},
|
||||||
include:{
|
include:{
|
||||||
restorations: {}
|
restorations: {}
|
||||||
|
},
|
||||||
|
orderBy: {
|
||||||
|
createdAt: "desc"
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
const restorations = await prisma.restoration.findMany({
|
const restorations = await prisma.restoration.findMany({
|
||||||
where: {
|
where: {
|
||||||
databaseId: databaseId,
|
databaseId: databaseId,
|
||||||
|
},
|
||||||
|
orderBy: {
|
||||||
|
createdAt: "desc"
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,31 @@
|
|||||||
|
import React from "react";
|
||||||
|
import {cn} from "@/lib/utils";
|
||||||
|
|
||||||
|
export interface ISVGProps extends React.SVGProps<SVGSVGElement> {
|
||||||
|
size?: number;
|
||||||
|
className?: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export const LoadingSpinner = ({
|
||||||
|
size = 24,
|
||||||
|
className,
|
||||||
|
...props
|
||||||
|
}: ISVGProps) => {
|
||||||
|
return (
|
||||||
|
<svg
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
width={size}
|
||||||
|
height={size}
|
||||||
|
{...props}
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
fill="none"
|
||||||
|
stroke="currentColor"
|
||||||
|
strokeWidth="2"
|
||||||
|
strokeLinecap="round"
|
||||||
|
strokeLinejoin="round"
|
||||||
|
className={cn("animate-spin", className)}
|
||||||
|
>
|
||||||
|
<path d="M21 12a9 9 0 1 1-6.219-8.56" />
|
||||||
|
</svg>
|
||||||
|
);
|
||||||
|
};
|
||||||
@@ -25,7 +25,7 @@ export const DatabaseKpi = (props: DatabaseKpiPro) => {
|
|||||||
Success rate
|
Success rate
|
||||||
</CardHeader>
|
</CardHeader>
|
||||||
<CardContent>
|
<CardContent>
|
||||||
{props.successRate ?? "Unavailable for now."}
|
{props.successRate ? `${props.successRate} %` : "Unavailable for now."}
|
||||||
</CardContent>
|
</CardContent>
|
||||||
</Card>
|
</Card>
|
||||||
<Card className="w-full sm:w-auto flex-1">
|
<Card className="w-full sm:w-auto flex-1">
|
||||||
|
|||||||
Reference in New Issue
Block a user