Update: 2026-07-12 05:49:17

This commit is contained in:
Hamza-Ayed
2026-07-12 05:49:17 +03:00
parent 24fb56f08f
commit 1f68cb7333
3 changed files with 129 additions and 104 deletions
@@ -22,6 +22,8 @@ class TransitHomePage extends StatelessWidget {
title: 'Mawasalati'.tr,
isleading: true,
body: [
Column(
children: [
Expanded(
child: RefreshIndicator(
onRefresh: c.fetchMyEnrollments,
@@ -44,6 +46,8 @@ class TransitHomePage extends StatelessWidget {
),
],
),
],
),
);
}
@@ -22,7 +22,9 @@ class _TransitOrgBrowsePageState extends State<TransitOrgBrowsePage> {
@override
void initState() {
super.initState();
WidgetsBinding.instance.addPostFrameCallback((_) {
Get.find<TransitController>().browseOrgs();
});
}
@override
@@ -32,8 +34,11 @@ class _TransitOrgBrowsePageState extends State<TransitOrgBrowsePage> {
title: 'Choose your institution'.tr,
isleading: true,
body: [
Column(
children: [
Padding(
padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 8),
padding:
const EdgeInsets.symmetric(horizontal: 16, vertical: 8),
child: TextField(
controller: _searchCtrl,
onSubmitted: (v) => c.browseOrgs(search: v),
@@ -70,10 +75,14 @@ class _TransitOrgBrowsePageState extends State<TransitOrgBrowsePage> {
side: BorderSide(color: AppColor.borderColor),
),
child: ListTile(
title: Text(org.nameAr, style: AppStyle.title),
subtitle: Text(org.city, style: AppStyle.subtitle),
trailing: const Icon(Icons.arrow_forward_ios, size: 16),
onTap: () => _showActivateSheet(context, c, org),
title:
Text(org.nameAr, style: AppStyle.title),
subtitle:
Text(org.city, style: AppStyle.subtitle),
trailing: const Icon(Icons.arrow_forward_ios,
size: 16),
onTap: () =>
_showActivateSheet(context, c, org),
),
);
},
@@ -81,10 +90,13 @@ class _TransitOrgBrowsePageState extends State<TransitOrgBrowsePage> {
),
],
),
],
),
);
}
void _showActivateSheet(BuildContext context, TransitController c, TransitOrg org) {
void _showActivateSheet(
BuildContext context, TransitController c, TransitOrg org) {
final idCtrl = TextEditingController();
bool loading = false;
@@ -107,7 +119,8 @@ class _TransitOrgBrowsePageState extends State<TransitOrgBrowsePage> {
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(org.nameAr, style: AppStyle.headTitle2.copyWith(fontSize: 18)),
Text(org.nameAr,
style: AppStyle.headTitle2.copyWith(fontSize: 18)),
const SizedBox(height: 6),
Text('Enter your student/employee ID to activate membership'.tr,
style: AppStyle.subtitle),
@@ -118,7 +131,8 @@ class _TransitOrgBrowsePageState extends State<TransitOrgBrowsePage> {
hintText: 'Student ID'.tr,
filled: true,
fillColor: AppColor.secondaryColor,
border: OutlineInputBorder(borderRadius: BorderRadius.circular(12)),
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(12)),
),
),
const SizedBox(height: 16),
@@ -128,7 +142,8 @@ class _TransitOrgBrowsePageState extends State<TransitOrgBrowsePage> {
onPressed: () async {
if (idCtrl.text.trim().isEmpty) return;
setState(() => loading = true);
final ok = await c.activateEnrollment(org.id, idCtrl.text.trim());
final ok =
await c.activateEnrollment(org.id, idCtrl.text.trim());
setState(() => loading = false);
if (ok && ctx.mounted) {
Navigator.pop(ctx);
@@ -21,7 +21,9 @@ class _TransitRoutesPageState extends State<TransitRoutesPage> {
@override
void initState() {
super.initState();
WidgetsBinding.instance.addPostFrameCallback((_) {
Get.find<TransitController>().openOrgRoutes(widget.orgId);
});
}
@override
@@ -31,6 +33,8 @@ class _TransitRoutesPageState extends State<TransitRoutesPage> {
title: widget.orgName,
isleading: true,
body: [
Column(
children: [
Expanded(
child: c.isLoadingRoutes
? const Center(child: CircularProgressIndicator())
@@ -69,6 +73,8 @@ class _TransitRoutesPageState extends State<TransitRoutesPage> {
),
],
),
],
),
);
}
}