Files
prowler/ui/components/ui/entities/date-with-time.tsx
Alan Buscaglia 4d5676f00e feat: upgrade to React 19, Next.js 15, React Compiler, HeroUI and Tailwind 4 (#8748)
Co-authored-by: Alan Buscaglia <alanbuscaglia@MacBook-Pro.local>
Co-authored-by: alejandrobailo <alejandrobailo94@gmail.com>
Co-authored-by: César Arroba <cesar@prowler.com>
Co-authored-by: Alejandro Bailo <59607668+alejandrobailo@users.noreply.github.com>
2025-09-30 09:59:51 +02:00

48 lines
1.1 KiB
TypeScript

import { format, parseISO } from "date-fns";
import React from "react";
interface DateWithTimeProps {
dateTime: string | null; // e.g., "2024-07-17T09:55:14.191475Z"
showTime?: boolean;
inline?: boolean;
}
export const DateWithTime: React.FC<DateWithTimeProps> = ({
dateTime,
showTime = true,
inline = false,
}) => {
if (!dateTime) return <span>--</span>;
try {
const date = parseISO(dateTime);
// Validate if the date is valid
if (isNaN(date.getTime())) {
return <span>-</span>;
}
const formattedDate = format(date, "MMM dd, yyyy");
const formattedTime = format(date, "p");
return (
<div className="mw-fit py-[2px]">
<div
className={`flex ${inline ? "flex-row items-center gap-2" : "flex-col"}`}
>
<span className="text-xs font-semibold whitespace-nowrap">
{formattedDate}
</span>
{showTime && (
<span className="text-xs whitespace-nowrap text-gray-500">
{formattedTime}
</span>
)}
</div>
</div>
);
} catch (error) {
return <span>-</span>;
}
};