// transit_routes_page.dart — خطوط مؤسسة الراكب import 'package:flutter/material.dart'; import 'package:get/get.dart'; import '../../constant/colors.dart'; import '../../constant/style.dart'; import '../../controller/transit/transit_controller.dart'; import '../widgets/my_scafold.dart'; import 'transit_live_map_page.dart'; class TransitRoutesPage extends StatefulWidget { final int orgId; final String orgName; const TransitRoutesPage({super.key, required this.orgId, required this.orgName}); @override State createState() => _TransitRoutesPageState(); } class _TransitRoutesPageState extends State { @override void initState() { super.initState(); WidgetsBinding.instance.addPostFrameCallback((_) { Get.find().openOrgRoutes(widget.orgId); }); } @override Widget build(BuildContext context) { return GetBuilder( builder: (c) => MyScafolld( title: widget.orgName, isleading: true, body: [ Column( children: [ Expanded( child: c.isLoadingRoutes ? const Center(child: CircularProgressIndicator()) : c.currentOrgRoutes.isEmpty ? Center( child: Text('No active routes currently'.tr, style: AppStyle.title), ) : ListView.builder( padding: const EdgeInsets.all(16), itemCount: c.currentOrgRoutes.length, itemBuilder: (_, i) { final r = c.currentOrgRoutes[i]; return Card( margin: const EdgeInsets.only(bottom: 10), color: AppColor.cardColor, elevation: 0, shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(14), side: BorderSide(color: AppColor.borderColor), ), child: ListTile( leading: CircleAvatar( backgroundColor: AppColor.accentColor.withOpacity(0.15), child: Icon(Icons.directions_bus, color: AppColor.accentColor), ), title: Text(r.nameAr, style: AppStyle.title), subtitle: Text('${r.stopCount} ${'Stops'.tr}', style: AppStyle.subtitle), trailing: const Icon(Icons.arrow_forward_ios, size: 16), onTap: () => Get.to( () => TransitLiveMapPage(routeId: r.id, routeName: r.nameAr), ), ), ); }, ), ), ], ), ], ), ); } }