diff --git a/components/brain/left-sidebar/waves/BrainLeftSidebarWaveDropTime.tsx b/components/brain/left-sidebar/waves/BrainLeftSidebarWaveDropTime.tsx
index 8e2d490acf..ceb9df3d8b 100644
--- a/components/brain/left-sidebar/waves/BrainLeftSidebarWaveDropTime.tsx
+++ b/components/brain/left-sidebar/waves/BrainLeftSidebarWaveDropTime.tsx
@@ -1,6 +1,6 @@
"use client";
-import React, { useState, useEffect } from "react";
+import React, { useEffect, useState } from "react";
import { getTimeAgoShort } from "@/helpers/Helpers";
interface BrainLeftSidebarWaveDropTimeProps {
@@ -10,19 +10,28 @@ interface BrainLeftSidebarWaveDropTimeProps {
const BrainLeftSidebarWaveDropTime: React.FC<
BrainLeftSidebarWaveDropTimeProps
> = ({ time }) => {
- const [_, setTick] = useState(0);
+ const [now, setNow] = useState(() => Date.now());
useEffect(() => {
- const intervalId = setInterval(() => {
- setTick((prev) => prev + 1);
- }, 60000); // Update every minute (60000ms)
+ const intervalId = window.setInterval(() => {
+ setNow(Date.now());
+ }, 60000);
return () => {
- clearInterval(intervalId);
+ window.clearInterval(intervalId);
};
}, []);
- return {getTimeAgoShort(time)};
+ useEffect(() => {
+ setNow((previousNow) => {
+ const currentNow = Date.now();
+ return previousNow === currentNow ? previousNow : currentNow;
+ });
+ }, [time]);
+
+ const label = getTimeAgoShort(time, now);
+
+ return {label};
};
export default BrainLeftSidebarWaveDropTime;
diff --git a/helpers/Helpers.ts b/helpers/Helpers.ts
index 3d3912744b..11ec92ca15 100644
--- a/helpers/Helpers.ts
+++ b/helpers/Helpers.ts
@@ -560,9 +560,11 @@ export const getTimeAgo = (milliseconds: number): string => {
}
};
-export const getTimeAgoShort = (milliseconds: number): string => {
- const currentTime = new Date().getTime();
- const timeDifference = currentTime - milliseconds;
+export const getTimeAgoShort = (
+ milliseconds: number,
+ referenceTime: number = Date.now()
+): string => {
+ const timeDifference = referenceTime - milliseconds;
const seconds = Math.floor(timeDifference / 1000);
const minutes = Math.floor(seconds / 60);