From 66b6d0f17514bbbb0bfc256d8746704a3401e3c5 Mon Sep 17 00:00:00 2001 From: Aurora Lahtela <24460436+AuroraLS3@users.noreply.github.com> Date: Sun, 7 Apr 2024 10:05:19 +0300 Subject: [PATCH] Fix server join addresses page getting network join address list --- .../components/cards/common/JoinAddresses.jsx | 5 +- .../cards/common/PlayerRetentionGraphCard.jsx | 1 - .../server/graphs/JoinAddressGraphCard.jsx | 55 +++++++++++-------- 3 files changed, 34 insertions(+), 27 deletions(-) diff --git a/Plan/react/dashboard/src/components/cards/common/JoinAddresses.jsx b/Plan/react/dashboard/src/components/cards/common/JoinAddresses.jsx index b5af9e19a..ea42e1062 100644 --- a/Plan/react/dashboard/src/components/cards/common/JoinAddresses.jsx +++ b/Plan/react/dashboard/src/components/cards/common/JoinAddresses.jsx @@ -5,18 +5,19 @@ import {Col} from "react-bootstrap"; import React from "react"; import AddressGroupSelectorRow from "./AddressGroupSelectorRow.jsx"; import {JoinAddressListContextProvider} from "../../../hooks/context/joinAddressListContextHook.jsx"; +import {staticSite} from "../../../service/backendConfiguration.js"; const JoinAddresses = ({id, seeTime, identifier}) => { return ( {seeTime &&
- + - + {!staticSite && }
}
diff --git a/Plan/react/dashboard/src/components/cards/common/PlayerRetentionGraphCard.jsx b/Plan/react/dashboard/src/components/cards/common/PlayerRetentionGraphCard.jsx index 002e1f161..0ec076c77 100644 --- a/Plan/react/dashboard/src/components/cards/common/PlayerRetentionGraphCard.jsx +++ b/Plan/react/dashboard/src/components/cards/common/PlayerRetentionGraphCard.jsx @@ -173,7 +173,6 @@ const PlayerRetentionGraphCard = ({identifier, selectedGroupBy, setSelectedGroup if (!grouped[joinAddressGroup]) grouped[joinAddressGroup] = []; grouped[joinAddressGroup].push(point); } - break; case 'none': default: diff --git a/Plan/react/dashboard/src/components/cards/server/graphs/JoinAddressGraphCard.jsx b/Plan/react/dashboard/src/components/cards/server/graphs/JoinAddressGraphCard.jsx index f105005b0..01a8f9ad2 100644 --- a/Plan/react/dashboard/src/components/cards/server/graphs/JoinAddressGraphCard.jsx +++ b/Plan/react/dashboard/src/components/cards/server/graphs/JoinAddressGraphCard.jsx @@ -10,6 +10,7 @@ import JoinAddressGraph from "../../../graphs/JoinAddressGraph"; import Toggle from "../../../input/Toggle"; import {useJoinAddressListContext} from "../../../../hooks/context/joinAddressListContextHook.jsx"; import {useNavigation} from "../../../../hooks/navigationHook.jsx"; +import {staticSite} from "../../../../service/backendConfiguration.js"; const JoinAddressGraphCard = ({identifier}) => { const {t} = useTranslation(); @@ -22,11 +23,12 @@ const JoinAddressGraphCard = ({identifier}) => { const [data, setData] = useState(undefined); const [loadingError, setLoadingError] = useState(undefined); const loadAddresses = useCallback(async () => { - if (noSelectedAddresses) return; + if (!staticSite && noSelectedAddresses) return; let colors = ['#4ab4de']; const dataByGroup = []; - for (const group of list.filter(group => group.addresses.length)) { + const addressGroups = staticSite ? [{addresses: [], name: ""}] : list.filter(group => group.addresses.length); + for (const group of addressGroups) { const {data, error} = await fetchJoinAddressByDay(updateRequested, group.addresses, identifier); if (error) { setLoadingError(error); @@ -36,31 +38,36 @@ const JoinAddressGraphCard = ({identifier}) => { dataByGroup.push({...group, data: data?.join_addresses_by_date || []}); } - // First group points from endpoint into frontend based groups - const points = {}; - for (const group of dataByGroup) { - const groupName = group.name; - for (const point of group.data || []) { - if (!points[point.date]) points[point.date] = []; + if (!staticSite) { + // First group points from endpoint into frontend based groups + const points = {}; + for (const group of dataByGroup) { + const groupName = group.name; + for (const point of group.data || []) { + if (!points[point.date]) points[point.date] = []; - const count = point.joinAddresses.map(j => j.count).reduce((partialSum, a) => partialSum + a, 0); - points[point.date].push({date: point.date, joinAddresses: [{joinAddress: groupName, count}]}) - } - } - - // expected output: [{date: number, addresses: [{joinAddress: "name", count: number}]}] - const flattened = Object.entries(points) - .sort((a, b) => Number(b.date) - Number(a.date)) - .map(([date, pointList]) => { - return { - date: Number(date), joinAddresses: pointList.map(point => point.joinAddresses).flat() + const count = point.joinAddresses.map(j => j.count).reduce((partialSum, a) => partialSum + a, 0); + points[point.date].push({date: point.date, joinAddresses: [{joinAddress: groupName, count}]}) } - }); + } - setData({ - join_addresses_by_date: flattened, - colors - }); + // expected output: [{date: number, addresses: [{joinAddress: "name", count: number}]}] + const flattened = Object.entries(points) + .sort((a, b) => Number(b.date) - Number(a.date)) + .map(([date, pointList]) => { + return { + date: Number(date), joinAddresses: pointList.map(point => point.joinAddresses).flat() + } + }); + + setData({ + join_addresses_by_date: flattened, + colors + }); + } else { + // On exported site we get all addresses individually + setData({join_addresses_by_date: dataByGroup[0].data, colors}) + } }, [setData, setLoadingError, identifier, updateRequested, list]); useEffect(() => {