Converts timestamps to human-readable date and time format

Transforms raw timestamps into localized, user-friendly date strings for display in the UI. Handles both direct timestamp strings and track objects with embedded timestamps.

Includes comprehensive error handling for missing or invalid dates.

export const formatDate = (dateString: string | SkippedTrack): string => {
// Handle case where the entire track is passed in
if (typeof dateString !== "string") {
const track = dateString;
dateString = getMostRecentTimestamp(track);
}

if (!dateString) return "Never";

try {
const date = parseTimestamp(dateString);
if (!date || isNaN(date.getTime())) return "Invalid date";
return date.toLocaleDateString() + " " + date.toLocaleTimeString();
} catch (error) {
console.error("Error formatting date:", error);
return "Invalid date";
}
};