Ver código fonte

display weeks and days in duration for stacks events (#3141)

Feroze Mohideen 2 anos atrás
pai
commit
7d64ae20fc

+ 14 - 10
dashboard/src/main/home/app-dashboard/expanded-app/activity-feed/events/utils.ts

@@ -11,25 +11,29 @@ export const getDuration = (event: PorterAppEvent): string => {
     const timeDifferenceMilliseconds = endTimeStamp - startTimeStamp;
 
     const seconds = Math.floor(timeDifferenceMilliseconds / 1000);
-    const hours = Math.floor(seconds / 3600);
-    const minutes = Math.floor((seconds % 3600) / 60);
+    const weeks = Math.floor(seconds / 604800);
+    const remainingDays = Math.floor((seconds % 604800) / 86400);
+    const remainingHours = Math.floor((seconds % 86400) / 3600);
+    const remainingMinutes = Math.floor((seconds % 3600) / 60);
     const remainingSeconds = seconds % 60;
 
-    let formattedTime = "";
+    if (weeks > 0) {
+        return `${weeks}w ${remainingDays}d`;
+    }
 
-    if (hours > 0) {
-        formattedTime += `${hours}h `;
+    if (remainingDays > 0) {
+        return `${remainingDays}d ${remainingHours}h`;
     }
 
-    if (minutes > 0) {
-        formattedTime += `${minutes}m `;
+    if (remainingHours > 0) {
+        return `${remainingHours}h ${remainingMinutes}m`;
     }
 
-    if (hours === 0 && minutes === 0) {
-        formattedTime += `${remainingSeconds}s`;
+    if (remainingMinutes > 0) {
+        return `${remainingMinutes}m ${remainingSeconds}s`;
     }
 
-    return formattedTime.trim();
+    return `${remainingSeconds}s`;
 };
 
 export const getStatusIcon = (status: string) => {