Update: 2026-08-03 13:10:56
This commit is contained in:
@@ -40,8 +40,22 @@ class CaptainsPage extends StatelessWidget {
|
||||
return _buildEmptyState(cs);
|
||||
}
|
||||
|
||||
final List<dynamic> captains =
|
||||
message is List ? message : [message];
|
||||
// AdminCaptain/get.php يغلّف النتيجة مرّتين:
|
||||
// {"status":"success","message":{"data":[ ...الكباتن... ]}}
|
||||
// الشرط السابق كان `message is List ? message : [message]`،
|
||||
// فيلفّ الخريطة نفسها في قائمة من عنصر واحد. النتيجة بطاقة
|
||||
// واحدة كل حقولها null — وهو سبب اختفاء الاسم والهاتف،
|
||||
// لا خطأ في فك التشفير.
|
||||
final List<dynamic> captains;
|
||||
if (message is List) {
|
||||
captains = message;
|
||||
} else if (message is Map && message['data'] is List) {
|
||||
captains = message['data'];
|
||||
} else if (message is Map) {
|
||||
captains = [message];
|
||||
} else {
|
||||
captains = const [];
|
||||
}
|
||||
|
||||
if (captains.isEmpty) {
|
||||
return _buildEmptyState(cs);
|
||||
|
||||
@@ -35,7 +35,12 @@ class _HeatmapPageState extends State<HeatmapPage> {
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
_fetchHeatmapData();
|
||||
// _fetchHeatmapData يقرأ Theme.of(context) لتلوين العلامات، وهذا ممنوع
|
||||
// قبل اكتمال initState (يرمي dependOnInheritedWidgetOfExactType).
|
||||
// التأجيل إلى ما بعد أول إطار يضمن جاهزية الشجرة.
|
||||
WidgetsBinding.instance.addPostFrameCallback((_) {
|
||||
if (mounted) _fetchHeatmapData();
|
||||
});
|
||||
}
|
||||
|
||||
Future<void> _fetchHeatmapData() async {
|
||||
|
||||
Reference in New Issue
Block a user