"use client"; import { ActionIcon, Anchor, Group, Indicator, Stack, Text } from "@mantine/core"; import { IconExternalLink, IconFileText, IconLink } from "@tabler/icons-react"; import { cleanFqdn, getResourceTimestamp, getStatusColor, parseStatus } from "./coolify-utils"; interface ResourceRowProps { item: { uuid: string; name: string; status?: string | null; fqdn?: string | null; updated_at?: string | null; last_online_at?: string | null; projectName?: string; projectUuid?: string; environmentName?: string; environmentUuid?: string; }; baseUrl: string; isTiny: boolean; resourceType: "application" | "service"; } export function ResourceRow({ item, baseUrl, isTiny, resourceType }: ResourceRowProps) { const status = parseStatus(item.status ?? ""); const statusColor = getStatusColor(status); const resourceUrl = item.projectUuid && item.environmentUuid ? `${baseUrl}/project/${item.projectUuid}/environment/${item.environmentUuid}/${resourceType}/${item.uuid}` : undefined; const logsUrl = resourceUrl ? `${resourceUrl}/logs` : undefined; return ( {resourceUrl ? ( {item.name} ) : ( {item.name} )} {cleanFqdn(item.fqdn) && ( )} {resourceUrl && ( )} {logsUrl && ( )} {item.projectName ?? "-"} / {item.environmentName ?? "-"} {getResourceTimestamp(item, resourceType) && ( {getResourceTimestamp(item, resourceType)} )} ); }