mirror of
https://github.com/umami-software/umami.git
synced 2026-02-10 15:47:13 +01:00
fix: calculate country visitors share relative to total
as opposed to relative to the top-10 countries shown in the breakdown
This commit is contained in:
parent
860e6390f1
commit
cd1ee8461a
3 changed files with 78 additions and 18 deletions
|
|
@ -40,21 +40,25 @@ export function MetricsTable({
|
|||
|
||||
const filteredData = useMemo(() => {
|
||||
if (data) {
|
||||
let items = data as any[];
|
||||
// Handle both old format (array) and new format ({ data, total })
|
||||
const items = Array.isArray(data) ? data : data.data;
|
||||
const total = Array.isArray(data) ? undefined : data.total;
|
||||
|
||||
let filtered = items as any[];
|
||||
|
||||
if (dataFilter) {
|
||||
if (Array.isArray(dataFilter)) {
|
||||
items = dataFilter.reduce((arr, filter) => {
|
||||
filtered = dataFilter.reduce((arr, filter) => {
|
||||
return filter(arr);
|
||||
}, items);
|
||||
}, filtered);
|
||||
} else {
|
||||
items = dataFilter(items);
|
||||
filtered = dataFilter(filtered);
|
||||
}
|
||||
}
|
||||
|
||||
items = percentFilter(items);
|
||||
filtered = percentFilter(filtered, total);
|
||||
|
||||
return items.map(({ x, y, z, ...props }) => ({ label: x, count: y, percent: z, ...props }));
|
||||
return filtered.map(({ x, y, z, ...props }) => ({ label: x, count: y, percent: z, ...props }));
|
||||
}
|
||||
return [];
|
||||
}, [data, dataFilter, limit, type]);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue