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

48 lines
1.6 KiB
TypeScript
Raw Normal View History

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