import React from "react";
import { formatDistanceToNowStrict } from "date-fns";
import { abbreviateTimeUnits } from "utilities/helpers";
import TooltipWrapper from "components/TooltipWrapper";
const baseClass = "component__last-updated-text";
interface ILastUpdatedTextBase {
lastUpdatedAt?: string | null;
}
interface ILastUpdatedTextWithCustomTooltip extends ILastUpdatedTextBase {
customTooltipText: React.ReactNode;
whatToRetrieve?: never;
}
interface ILastUpdatedTextWithWhatToRetrieve extends ILastUpdatedTextBase {
customTooltipText?: never;
whatToRetrieve: string;
}
const LastUpdatedText = ({
lastUpdatedAt,
whatToRetrieve,
customTooltipText,
}:
| ILastUpdatedTextWithCustomTooltip
| ILastUpdatedTextWithWhatToRetrieve): JSX.Element => {
if (!lastUpdatedAt || lastUpdatedAt === "0001-01-01T00:00:00Z") {
lastUpdatedAt = "never";
} else {
lastUpdatedAt = abbreviateTimeUnits(
formatDistanceToNowStrict(new Date(lastUpdatedAt), {
addSuffix: true,
})
);
}
const tooltipContent = customTooltipText || (
<>
Fleet periodically queries all hosts
to retrieve {whatToRetrieve}.
>
);
return (
{`Updated ${lastUpdatedAt}`}
);
};
export default LastUpdatedText;