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

83 lines
3.7 KiB
Markdown

# گزارش جای خالی کارت‌های داشبورد
## خلاصه
در داشبورد فعلی بعضی اسلات‌ها `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` درست می‌کنم.