mirror of
https://github.com/umami-software/umami.git
synced 2026-02-19 12:05:41 +01:00
Compare commits
No commits in common. "875c03bca19f0ca5f07e748306f4c133cabc7272" and "3cc2c5b7a8a2d9444552a8f65439bcde255486cd" have entirely different histories.
875c03bca1
...
3cc2c5b7a8
2 changed files with 26 additions and 19 deletions
32
README.md
32
README.md
|
|
@ -9,10 +9,18 @@
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<a href="https://github.com/umami-software/umami/releases"><img src="https://img.shields.io/github/release/umami-software/umami.svg" alt="GitHub Release" /></a>
|
<a href="https://github.com/umami-software/umami/releases">
|
||||||
<a href="https://github.com/umami-software/umami/blob/master/LICENSE"><img src="https://img.shields.io/github/license/umami-software/umami.svg" alt="MIT License" /></a>
|
<img src="https://img.shields.io/github/release/umami-software/umami.svg" alt="GitHub Release" />
|
||||||
<a href="https://github.com/umami-software/umami/actions"><img src="https://img.shields.io/github/actions/workflow/status/umami-software/umami/ci.yml" alt="Build Status" /></a>
|
</a>
|
||||||
<a href="https://analytics.umami.is/share/LGazGOecbDtaIwDr/umami.is" style="text-decoration: none;"><img src="https://img.shields.io/badge/Try%20Demo%20Now-Click%20Here-brightgreen" alt="Umami Demo" /></a>
|
<a href="https://github.com/umami-software/umami/blob/master/LICENSE">
|
||||||
|
<img src="https://img.shields.io/github/license/umami-software/umami.svg" alt="MIT License" />
|
||||||
|
</a>
|
||||||
|
<a href="https://github.com/umami-software/umami/actions">
|
||||||
|
<img src="https://img.shields.io/github/actions/workflow/status/umami-software/umami/ci.yml" alt="Build Status" />
|
||||||
|
</a>
|
||||||
|
<a href="https://analytics.umami.is/share/LGazGOecbDtaIwDr/umami.is" style="text-decoration: none;">
|
||||||
|
<img src="https://img.shields.io/badge/Try%20Demo%20Now-Click%20Here-brightgreen" alt="Umami Demo" />
|
||||||
|
</a>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
@ -111,10 +119,18 @@ docker compose up --force-recreate -d
|
||||||
## 🛟 Support
|
## 🛟 Support
|
||||||
|
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<a href="https://github.com/umami-software/umami"><img src="https://img.shields.io/badge/GitHub--blue?style=social&logo=github" alt="GitHub" /></a>
|
<a href="https://github.com/umami-software/umami">
|
||||||
<a href="https://twitter.com/umami_software"><img src="https://img.shields.io/badge/Twitter--blue?style=social&logo=twitter" alt="Twitter" /></a>
|
<img src="https://img.shields.io/badge/GitHub--blue?style=social&logo=github" alt="GitHub" />
|
||||||
<a href="https://linkedin.com/company/umami-software"><img src="https://img.shields.io/badge/LinkedIn--blue?style=social&logo=linkedin" alt="LinkedIn" /></a>
|
</a>
|
||||||
<a href="https://umami.is/discord"><img src="https://img.shields.io/badge/Discord--blue?style=social&logo=discord" alt="Discord" /></a>
|
<a href="https://twitter.com/umami_software">
|
||||||
|
<img src="https://img.shields.io/badge/Twitter--blue?style=social&logo=twitter" alt="Twitter" />
|
||||||
|
</a>
|
||||||
|
<a href="https://linkedin.com/company/umami-software">
|
||||||
|
<img src="https://img.shields.io/badge/LinkedIn--blue?style=social&logo=linkedin" alt="LinkedIn" />
|
||||||
|
</a>
|
||||||
|
<a href="https://umami.is/discord">
|
||||||
|
<img src="https://img.shields.io/badge/Discord--blue?style=social&logo=discord" alt="Discord" />
|
||||||
|
</a>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
[release-shield]: https://img.shields.io/github/release/umami-software/umami.svg
|
[release-shield]: https://img.shields.io/github/release/umami-software/umami.svg
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,6 @@ export function RealtimeChart({ data, unit, ...props }: RealtimeChartProps) {
|
||||||
const endDate = startOfMinute(new Date());
|
const endDate = startOfMinute(new Date());
|
||||||
const startDate = subMinutes(endDate, REALTIME_RANGE);
|
const startDate = subMinutes(endDate, REALTIME_RANGE);
|
||||||
const prevEndDate = useRef(endDate);
|
const prevEndDate = useRef(endDate);
|
||||||
const prevData = useRef<string | null>(null);
|
|
||||||
|
|
||||||
const chartData = useMemo(() => {
|
const chartData = useMemo(() => {
|
||||||
if (!data) {
|
if (!data) {
|
||||||
|
|
@ -29,22 +28,14 @@ export function RealtimeChart({ data, unit, ...props }: RealtimeChartProps) {
|
||||||
};
|
};
|
||||||
}, [data, startDate, endDate, unit]);
|
}, [data, startDate, endDate, unit]);
|
||||||
|
|
||||||
|
// Don't animate the bars shifting over because it looks weird
|
||||||
const animationDuration = useMemo(() => {
|
const animationDuration = useMemo(() => {
|
||||||
// Don't animate the bars shifting over because it looks weird
|
|
||||||
if (isBefore(prevEndDate.current, endDate)) {
|
if (isBefore(prevEndDate.current, endDate)) {
|
||||||
prevEndDate.current = endDate;
|
prevEndDate.current = endDate;
|
||||||
return 0;
|
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;
|
return DEFAULT_ANIMATION_DURATION;
|
||||||
}, [endDate, chartData]);
|
}, [endDate]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<PageviewsChart
|
<PageviewsChart
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue