Files
portabase/src/components/wrappers/dashboard/projects/ProjectCard/ProjectDatabaseCard.tsx
T

57 lines
1.7 KiB
TypeScript
Raw Normal View History

2024-12-01 11:11:27 +01:00
"use client";
import Link from "next/link";
import Image from "next/image"
2024-12-13 14:08:24 +01:00
import {Database} from "@prisma/client";
import {Card, CardContent, CardHeader} from "@/components/ui/card";
2024-12-16 16:30:00 +01:00
import {ConnectionCircle} from "@/components/wrappers/common/connection-circle";
2024-12-01 11:11:27 +01:00
import {formatDateLastContact} from "@/utils/date-formatting";
export type projectDatabaseCardProps = {
2024-12-13 14:08:24 +01:00
data: Database,
2024-12-01 11:11:27 +01:00
extendedProps: any
organizationSlug: string
2024-12-01 11:11:27 +01:00
}
export const ProjectDatabaseCard = (props: projectDatabaseCardProps) => {
2024-12-13 14:08:24 +01:00
const {organizationSlug,data: database, extendedProps: extendedProps} = props;
2024-12-13 14:08:24 +01:00
2024-12-01 11:11:27 +01:00
return (
<Link href={`/dashboard/${organizationSlug}/projects/${extendedProps.id}/database/${database.id}`}>
2024-12-13 14:08:24 +01:00
<DatabaseCard data={database}/>
2024-12-01 11:11:27 +01:00
</Link>
)
2024-12-13 14:08:24 +01:00
}
export type databaseCardProps = {
data: Database,
}
export const DatabaseCard = (props: databaseCardProps) => {
const {data: database} = props;
return (
<Card className="flex flex-row justify-between">
<div className="flex flex-row items-center gap-2">
<Image
src="/PostgreSQL.png"
alt="Database type Icon"
width={60}
height={60}
className="object-cover ml-4"
/>
<div>
<CardHeader>Name : {database.name}</CardHeader>
<CardContent>
Last contact: {formatDateLastContact(database.lastContact)}
</CardContent>
</div>
</div>
<div className="mt-3 mr-3">
<ConnectionCircle date={database.lastContact}/>
</div>
</Card>
)
2024-12-01 11:11:27 +01:00
}