diff --git a/src/app/(dashboard)/dashboard/endpoint/EndpointPageClient.js b/src/app/(dashboard)/dashboard/endpoint/EndpointPageClient.js index 5ac6d557..16e45520 100644 --- a/src/app/(dashboard)/dashboard/endpoint/EndpointPageClient.js +++ b/src/app/(dashboard)/dashboard/endpoint/EndpointPageClient.js @@ -65,17 +65,23 @@ export default function APIPageClient({ isAdmin }) { const fetchQuickStats = useCallback(async () => { setQuickStatsLoading(true); try { - const [statsResponse, providersResponse] = await Promise.all([ - fetch("/api/usage/stats?period=today"), - fetch("/api/providers/client?pageSize=500"), - ]); + const statsRequest = fetch("/api/usage/stats?period=today"); + const providersRequest = isAdmin ? fetch("/api/providers/client?pageSize=500") : null; + const statsResponse = await statsRequest; if (!statsResponse.ok) throw new Error("Failed to fetch usage statistics"); const statsData = await statsResponse.json(); setQuickStats(statsData); - if (providersResponse.ok) { + if (!providersRequest) { + setProviderSummary(null); + } else { + const providersResponse = await providersRequest; + if (!providersResponse.ok) { + setProviderSummary(null); + return; + } const providersData = await providersResponse.json(); const connections = providersData.connections || []; const activeConnections = connections.filter( @@ -85,8 +91,6 @@ export default function APIPageClient({ isAdmin }) { active: activeConnections.length, total: providersData.pagination?.total ?? connections.length, }); - } else { - setProviderSummary(null); } } catch { setQuickStats(null); @@ -94,7 +98,7 @@ export default function APIPageClient({ isAdmin }) { } finally { setQuickStatsLoading(false); } - }, []); + }, [isAdmin]); useEffect(() => { const initialize = window.setTimeout(() => { @@ -207,7 +211,7 @@ export default function APIPageClient({ isAdmin }) {
- +
@@ -243,9 +247,9 @@ export default function APIPageClient({ isAdmin }) {

{copied ? "Value copied to clipboard." : ""}

{quickStatsLoading ? ( - + ) : ( - + )} {loadError && ( diff --git a/src/app/(dashboard)/dashboard/endpoint/components/QuickStatsBar.js b/src/app/(dashboard)/dashboard/endpoint/components/QuickStatsBar.js index 07dbd303..0b622da6 100644 --- a/src/app/(dashboard)/dashboard/endpoint/components/QuickStatsBar.js +++ b/src/app/(dashboard)/dashboard/endpoint/components/QuickStatsBar.js @@ -47,11 +47,17 @@ const statDefinitions = [ }, ]; -export function QuickStatsBarSkeleton() { +function getVisibleStatDefinitions(isAdmin) { + return isAdmin ? statDefinitions : statDefinitions.filter((stat) => stat.key !== "providers"); +} + +export function QuickStatsBarSkeleton({ isAdmin = false }) { + const visibleStatDefinitions = getVisibleStatDefinitions(isAdmin); + return (
Loading today's gateway statistics. - {statDefinitions.map((stat) => ( + {visibleStatDefinitions.map((stat) => (