From d34ad1d07f3126f9dce06b0379bee13fb6b3dec8 Mon Sep 17 00:00:00 2001
From: Abrar74774
Date: Sat, 15 Nov 2025 23:34:26 +0300
Subject: [PATCH 1/2] docs: remove underlines between bandges in README.md
---
README.md | 32 ++++++++------------------------
1 file changed, 8 insertions(+), 24 deletions(-)
diff --git a/README.md b/README.md
index 08648c0a..dcc6865f 100644
--- a/README.md
+++ b/README.md
@@ -9,18 +9,10 @@
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
---
@@ -119,18 +111,10 @@ docker compose up --force-recreate -d
## 🛟 Support
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
[release-shield]: https://img.shields.io/github/release/umami-software/umami.svg
From f5b5f159ecd24a440125212444e96d05e7860719 Mon Sep 17 00:00:00 2001
From: Arthur Sepiol
Date: Fri, 28 Nov 2025 02:17:16 +0300
Subject: [PATCH 2/2] fix: skip realtime chart animation when data unchanged
---
src/components/metrics/RealtimeChart.tsx | 13 +++++++++++--
1 file changed, 11 insertions(+), 2 deletions(-)
diff --git a/src/components/metrics/RealtimeChart.tsx b/src/components/metrics/RealtimeChart.tsx
index a71c03c3..ea4046d4 100644
--- a/src/components/metrics/RealtimeChart.tsx
+++ b/src/components/metrics/RealtimeChart.tsx
@@ -16,6 +16,7 @@ export function RealtimeChart({ data, unit, ...props }: RealtimeChartProps) {
const endDate = startOfMinute(new Date());
const startDate = subMinutes(endDate, REALTIME_RANGE);
const prevEndDate = useRef(endDate);
+ const prevData = useRef(null);
const chartData = useMemo(() => {
if (!data) {
@@ -28,14 +29,22 @@ export function RealtimeChart({ data, unit, ...props }: RealtimeChartProps) {
};
}, [data, startDate, endDate, unit]);
- // Don't animate the bars shifting over because it looks weird
const animationDuration = useMemo(() => {
+ // Don't animate the bars shifting over because it looks weird
if (isBefore(prevEndDate.current, endDate)) {
prevEndDate.current = endDate;
return 0;
}
+
+ // Don't animate when data hasn't changed
+ const serialized = JSON.stringify(chartData);
+ if (prevData.current === serialized) {
+ return 0;
+ }
+ prevData.current = serialized;
+
return DEFAULT_ANIMATION_DURATION;
- }, [endDate]);
+ }, [endDate, chartData]);
return (