From 52ccaf3bdbec49eb804d6414c148b62687d1d596 Mon Sep 17 00:00:00 2001 From: Overzunov Date: Thu, 2 Jun 2022 10:35:28 +0300 Subject: [PATCH] fix(stats page): fix race condition - missing data on chart/table --- .env | 2 +- astro_2.0/components/SideFilter/SideFilter.tsx | 4 +++- astro_2.0/features/Discover/components/Flow/Flow.tsx | 6 +++--- .../Discover/components/GeneralInfo/GeneralInfo.tsx | 6 +++--- .../features/Discover/components/Governance/Governance.tsx | 6 +++--- astro_2.0/features/Discover/components/Tokens/Tokens.tsx | 6 +++--- .../Discover/components/TopicsFilter/TopicsFilter.tsx | 2 ++ astro_2.0/features/Discover/components/Tvl/Tvl.tsx | 6 +++--- .../components/UsersAndActivity/UsersAndActivity.tsx | 6 +++--- astro_2.0/features/Discover/hooks.ts | 7 +++---- 10 files changed, 27 insertions(+), 24 deletions(-) diff --git a/.env b/.env index 96500048a..768de2915 100644 --- a/.env +++ b/.env @@ -2,7 +2,7 @@ AWS_BUCKET=sputnik-dao AWS_REGION=eu-central-1 AWS_IDENTITY_POOL_ID=eu-central-1:5887fd21-7b40-4871-a6cb-21097fe079a2 GOOGLE_ANALYTICS_KEY=G-2SWGMFRYJ8 -LOG_ROCKET_APP_ID=mp/astrodao +#LOG_ROCKET_APP_ID=mp/astrodao RELEASE_NOTES=https://github.com/near-daos/astro-ui/releases/latest I18_RELOAD_ON_PRERENDER=false STATS_API_URL=https://mainnet.api.daostats.io diff --git a/astro_2.0/components/SideFilter/SideFilter.tsx b/astro_2.0/components/SideFilter/SideFilter.tsx index 69e836a46..17d2a2133 100644 --- a/astro_2.0/components/SideFilter/SideFilter.tsx +++ b/astro_2.0/components/SideFilter/SideFilter.tsx @@ -24,6 +24,7 @@ interface SideFilterProps { hideAllOption?: boolean; shallowUpdate?: boolean; itemClassName?: string; + markerOffset?: number; } export const SideFilter = ({ @@ -37,6 +38,7 @@ export const SideFilter = ({ hideAllOption = false, shallowUpdate = false, forceHorizontalView = false, + markerOffset = 0, }: SideFilterProps): JSX.Element => { const { t } = useTranslation(); @@ -56,7 +58,7 @@ export const SideFilter = ({ const transformVal = index === -1 - ? 0 + ? markerOffset : index * HUNDRED_PERCENT + (hideAllOption ? 0 : HUNDRED_PERCENT); return { diff --git a/astro_2.0/features/Discover/components/Flow/Flow.tsx b/astro_2.0/features/Discover/components/Flow/Flow.tsx index 18f7b7541..3e6056e89 100644 --- a/astro_2.0/features/Discover/components/Flow/Flow.tsx +++ b/astro_2.0/features/Discover/components/Flow/Flow.tsx @@ -100,7 +100,7 @@ export const Flow: FC = () => { setLeaderboardData, chartData, setChartData, - resetData, + setActiveView, activeView, } = useDiscoveryState(items); @@ -110,9 +110,9 @@ export const Flow: FC = () => { return; } - resetData(id); + setActiveView(id); }, - [resetData, isMounted] + [setActiveView, isMounted] ); useEffect(() => { diff --git a/astro_2.0/features/Discover/components/GeneralInfo/GeneralInfo.tsx b/astro_2.0/features/Discover/components/GeneralInfo/GeneralInfo.tsx index b961d0d2a..296f4f8a4 100644 --- a/astro_2.0/features/Discover/components/GeneralInfo/GeneralInfo.tsx +++ b/astro_2.0/features/Discover/components/GeneralInfo/GeneralInfo.tsx @@ -62,7 +62,7 @@ export const GeneralInfo: FC = () => { setLeaderboardData, chartData, setChartData, - resetData, + setActiveView, activeView, } = useDiscoveryState(items); @@ -72,9 +72,9 @@ export const GeneralInfo: FC = () => { return; } - resetData(id); + setActiveView(id); }, - [resetData, isMounted] + [setActiveView, isMounted] ); useEffect(() => { diff --git a/astro_2.0/features/Discover/components/Governance/Governance.tsx b/astro_2.0/features/Discover/components/Governance/Governance.tsx index 34f12f25c..1686d9fee 100644 --- a/astro_2.0/features/Discover/components/Governance/Governance.tsx +++ b/astro_2.0/features/Discover/components/Governance/Governance.tsx @@ -81,7 +81,7 @@ export const Governance: FC = () => { setLeaderboardData, chartData, setChartData, - resetData, + setActiveView, activeView, } = useDiscoveryState(items); @@ -91,9 +91,9 @@ export const Governance: FC = () => { return; } - resetData(id); + setActiveView(id); }, - [resetData, isMounted] + [setActiveView, isMounted] ); useEffect(() => { diff --git a/astro_2.0/features/Discover/components/Tokens/Tokens.tsx b/astro_2.0/features/Discover/components/Tokens/Tokens.tsx index 87b9ce4e7..17449a05c 100644 --- a/astro_2.0/features/Discover/components/Tokens/Tokens.tsx +++ b/astro_2.0/features/Discover/components/Tokens/Tokens.tsx @@ -72,7 +72,7 @@ export const Tokens: FC = () => { setLeaderboardData, chartData, setChartData, - resetData, + setActiveView, activeView, } = useDiscoveryState(items); @@ -82,9 +82,9 @@ export const Tokens: FC = () => { return; } - resetData(id); + setActiveView(id); }, - [resetData, isMounted] + [setActiveView, isMounted] ); useEffect(() => { diff --git a/astro_2.0/features/Discover/components/TopicsFilter/TopicsFilter.tsx b/astro_2.0/features/Discover/components/TopicsFilter/TopicsFilter.tsx index 7298f920b..f0bffec4d 100644 --- a/astro_2.0/features/Discover/components/TopicsFilter/TopicsFilter.tsx +++ b/astro_2.0/features/Discover/components/TopicsFilter/TopicsFilter.tsx @@ -108,6 +108,7 @@ export const TopicsFilter: FC = () => { { { setLeaderboardData, chartData, setChartData, - resetData, + setActiveView, activeView, } = useDiscoveryState(items); @@ -103,9 +103,9 @@ export const Tvl: FC = () => { return; } - resetData(id); + setActiveView(id); }, - [isMounted, resetData] + [isMounted, setActiveView] ); useEffect(() => { diff --git a/astro_2.0/features/Discover/components/UsersAndActivity/UsersAndActivity.tsx b/astro_2.0/features/Discover/components/UsersAndActivity/UsersAndActivity.tsx index 1ebb39351..49b7199d6 100644 --- a/astro_2.0/features/Discover/components/UsersAndActivity/UsersAndActivity.tsx +++ b/astro_2.0/features/Discover/components/UsersAndActivity/UsersAndActivity.tsx @@ -134,8 +134,8 @@ export const UsersAndActivity: FC = () => { setLeaderboardData, chartData, setChartData, - resetData, activeView, + setActiveView, } = useDiscoveryState(items); const handleTopicSelect = useCallback( @@ -144,9 +144,9 @@ export const UsersAndActivity: FC = () => { return; } - resetData(id); + setActiveView(id); }, - [resetData, isMounted] + [isMounted, setActiveView] ); useEffect(() => { diff --git a/astro_2.0/features/Discover/hooks.ts b/astro_2.0/features/Discover/hooks.ts index e56136371..573a71890 100644 --- a/astro_2.0/features/Discover/hooks.ts +++ b/astro_2.0/features/Discover/hooks.ts @@ -70,17 +70,16 @@ export const useDiscoveryState = (items: TControlTab[]): DiscoveryState => { const [chartData, setChartData] = useState(null); const [activeView, setActiveView] = useState(items[0].id); - const resetData = useCallback((id: string) => { + const resetData = useCallback(() => { setOffset(0); setTotal(0); setLeaderboardData(null); setChartData(null); - setActiveView(id); }, []); useEffect(() => { - resetData(items[0].id); - }, [items, query.dao, resetData]); + resetData(); + }, [query.dao, resetData]); return { resetData,