From 75ba407df510b297b861f2784a0c5263a1c34a5c Mon Sep 17 00:00:00 2001
From: alorig <220087330+alorig@users.noreply.github.com>
Date: Mon, 17 Nov 2025 17:22:15 +0500
Subject: [PATCH] Enhance dashboard data fetching by adding active site checks
- Implemented checks for active site in Home, Planner, and Writer dashboards to prevent data fetching when no site is selected.
- Updated API calls to include site_id in requests for better data accuracy.
- Modified user messages to guide users in selecting an active site for insights.
---
frontend/src/pages/Dashboard/Home.tsx | 20 +++++++++++++-------
frontend/src/pages/Planner/Dashboard.tsx | 20 +++++++++++++++-----
frontend/src/pages/Writer/Dashboard.tsx | 18 ++++++++++++++----
3 files changed, 42 insertions(+), 16 deletions(-)
diff --git a/frontend/src/pages/Dashboard/Home.tsx b/frontend/src/pages/Dashboard/Home.tsx
index 5903074e..bfebd9e8 100644
--- a/frontend/src/pages/Dashboard/Home.tsx
+++ b/frontend/src/pages/Dashboard/Home.tsx
@@ -199,16 +199,22 @@ export default function Home() {
];
const fetchAppInsights = async () => {
+ if (!activeSite) {
+ setInsights(null);
+ setLoading(false);
+ return;
+ }
+
try {
setLoading(true);
const [keywordsRes, clustersRes, ideasRes, tasksRes, contentRes, imagesRes] = await Promise.all([
- fetchKeywords({ page_size: 1, site_id: undefined }),
- fetchClusters({ page_size: 1, site_id: undefined }),
- fetchContentIdeas({ page_size: 1, site_id: undefined }),
- fetchTasks({ page_size: 1, site_id: undefined }),
- fetchContent({ page_size: 1, site_id: undefined }),
- fetchContentImages({ page_size: 1, site_id: undefined })
+ fetchKeywords({ page_size: 1, site_id: activeSite.id, sector_id: activeSector?.id }),
+ fetchClusters({ page_size: 1, site_id: activeSite.id, sector_id: activeSector?.id }),
+ fetchContentIdeas({ page_size: 1, site_id: activeSite.id, sector_id: activeSector?.id }),
+ fetchTasks({ page_size: 1, site_id: activeSite.id, sector_id: activeSector?.id }),
+ fetchContent({ page_size: 1, site_id: activeSite.id, sector_id: activeSector?.id }),
+ fetchContentImages({ site_id: activeSite.id, sector_id: activeSector?.id })
]);
const totalKeywords = keywordsRes.count || 0;
@@ -248,7 +254,7 @@ export default function Home() {
useEffect(() => {
fetchAppInsights();
- }, [activeSite, activeSector]);
+ }, [activeSite?.id, activeSector?.id]);
const chartOptions: ApexOptions = {
chart: {
diff --git a/frontend/src/pages/Planner/Dashboard.tsx b/frontend/src/pages/Planner/Dashboard.tsx
index 19e26b83..50b8b517 100644
--- a/frontend/src/pages/Planner/Dashboard.tsx
+++ b/frontend/src/pages/Planner/Dashboard.tsx
@@ -73,14 +73,20 @@ export default function PlannerDashboard() {
// Fetch real data
const fetchDashboardData = async () => {
+ if (!activeSite) {
+ setStats(null);
+ setLoading(false);
+ return;
+ }
+
try {
setLoading(true);
const [keywordsRes, clustersRes, ideasRes, tasksRes] = await Promise.all([
- fetchKeywords({ page_size: 1000, sector_id: activeSector?.id }),
- fetchClusters({ page_size: 1000, sector_id: activeSector?.id }),
- fetchContentIdeas({ page_size: 1000, sector_id: activeSector?.id }),
- fetchTasks({ page_size: 1000, sector_id: activeSector?.id })
+ fetchKeywords({ page_size: 1000, site_id: activeSite.id, sector_id: activeSector?.id }),
+ fetchClusters({ page_size: 1000, site_id: activeSite.id, sector_id: activeSector?.id }),
+ fetchContentIdeas({ page_size: 1000, site_id: activeSite.id, sector_id: activeSector?.id }),
+ fetchTasks({ page_size: 1000, site_id: activeSite.id, sector_id: activeSector?.id })
]);
const keywords = keywordsRes.results || [];
@@ -439,7 +445,11 @@ export default function PlannerDashboard() {
- {activeSector ? 'No data available for the selected sector.' : 'No data available. Select a sector or wait for data to load.'} + {!activeSite + ? 'Select an active site to view planner insights.' + : activeSector + ? 'No data available for the selected sector.' + : 'No data available. Select a sector or wait for data to load.'}
- {activeSector ? 'No data available for the selected sector.' : 'No data available. Select a sector or wait for data to load.'} + {!activeSite + ? 'Select an active site to view writer insights.' + : activeSector + ? 'No data available for the selected sector.' + : 'No data available. Select a sector or wait for data to load.'}