Files
Frontend/DASHBOARD_EMPTY_CARD_REPORT.md
2026-05-05 23:54:24 +03:30

3.7 KiB

گزارش جای خالی کارت‌های داشبورد

خلاصه

در داشبورد فعلی بعضی اسلات‌ها Quick Access دارند اما خود کارت رندر نمی‌شود.
علت اصلی این است که wrapper اسلات را می‌سازد، ولی بعضی کامپوننت‌ها وقتی داده‌ی کافی ندارند return null می‌کنند.

کارت‌های خالی فعلی

1) sensorValuesList

  • ردیف: sensorMonitoring
  • جای کارت: ستون چپ ردیف سنسور
  • Route: /solid-sensor
  • وضعیت: فقط دکمه دسترسی سریع دیده می‌شود، خود کارت خالی است
  • علت فنی: اگر data.sensors.length === 0 باشد، کامپوننت رندر نمی‌شود
  • مرجع: src/views/dashboards/farm/SensorValuesList.tsx:30

2) sensorRadarChart

  • ردیف: sensorMonitoring
  • جای کارت: ستون راست ردیف سنسور
  • Route: /solid-sensor
  • وضعیت: فقط دکمه دسترسی سریع دیده می‌شود، خود کارت خالی است
  • علت فنی: اگر data.series.length === 0 باشد، کامپوننت رندر نمی‌شود
  • مرجع: src/views/dashboards/farm/SensorRadarChart.tsx:30

3) sensorComparisonChart

  • ردیف: sensorCharts
  • جای کارت: ستون بزرگ سمت چپ
  • Route: /solid-sensor
  • وضعیت: فقط دکمه دسترسی سریع دیده می‌شود، خود کارت خالی است
  • علت فنی: اگر data.series.length === 0 باشد، کامپوننت رندر نمی‌شود
  • مرجع: src/views/dashboards/farm/SensorComparisonChart.tsx:33

کارت‌هایی که ممکن است در شرایط خاص خالی شوند

این‌ها در HTML ارسالی شما فعلاً دیده می‌شوند، ولی در صورت خالی بودن داده می‌توانند ناپدید شوند:

waterNeedPrediction

  • شرط خالی شدن: series.length === 0
  • مرجع: src/views/dashboards/farm/WaterNeedPrediction.tsx:37

soilMoistureHeatmap

  • شرط خالی شدن: series.length === 0
  • مرجع: src/views/dashboards/farm/SoilMoistureHeatmap.tsx:37

yieldPredictionChart

  • شرط خالی شدن: series.length === 0
  • مرجع: src/views/dashboards/farm/YieldPredictionChart.tsx:57

recommendationsList

  • شرط خالی شدن: recommendations.length === 0
  • مرجع: src/views/dashboards/farm/RecommendationsList.tsx:32

دلیل اینکه فقط آیکن دیده می‌شود

Wrapper همیشه این دکمه را رندر می‌کند:

  • src/views/dashboards/farm/FarmDashboardWrapper.tsx:921

اما خود کارت از اینجا null برمی‌گرداند:

  • src/views/dashboards/farm/FarmDashboardWrapper.tsx:478

یعنی:

  • اسلات گرید وجود دارد
  • دکمه quick access وجود دارد
  • ولی محتوای کارت به خاطر داده‌ی خالی رندر نمی‌شود

نتیجه نهایی

بر اساس HTML فعلی، سه جای خالی قطعی در داشبورد وجود دارد:

  1. sensorValuesList
  2. sensorRadarChart
  3. sensorComparisonChart

پیشنهاد اصلاح

بهترین اصلاح این است که به‌جای return null:

  • یک empty state واقعی داخل کارت نمایش داده شود
  • یا در FarmDashboardWrapper وقتی داده‌ی کارت خالی است، اصلاً Quick Access هم رندر نشود

اگر خواستی، قدم بعدی را هم انجام می‌دهم و همین سه کارت خالی را با empty state card درست می‌کنم.