نسخة كاملة من مستودع سيرو عند ecfe7568 لتكون أساس تطبيق «انطلق». نُسخ المتعقَّب في git فقط (12,509 ملفاً / 302 م.ب) بـ git archive، لا `cp -r` — فاستُثنيت تلقائياً مخلفات البناء (build · node_modules · .dart_tool · .gradle · Pods ≈ 10.7 غ.ب) وكل ما يستثنيه .gitignore. هذا الكوميت **بلا أي تعديل عمداً** حتى يكون كل ما يليه فرقاً مقروءاً مقابل سيرو الأصلي. سيرو نفسه لم يُمسّ. ⚠️ لا يبني بعد: `.env` و`lib/env/env.g.dart` غير متعقَّبين في سيرو (وهذا صحيح — أسرار لكل مستأجر). كل تطبيق فلاتر هنا يحتاج .env خاصاً بانطلق ثم توليد env.g.dart عبر build_runner. لا تُنسخ أسرار سيرو. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
87 lines
3.8 KiB
Dart
87 lines
3.8 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:get/get.dart';
|
|
|
|
import '../../../constant/colors.dart';
|
|
import '../../../constant/style.dart';
|
|
import '../../../controller/admin/passenger_admin_controller.dart';
|
|
import '../../widgets/elevated_btn.dart';
|
|
import 'passenger_details_page.dart';
|
|
|
|
GetBuilder<PassengerAdminController> formSearchPassengers() {
|
|
// DbSql sql = DbSql.instance;
|
|
return GetBuilder<PassengerAdminController>(
|
|
builder: (controller) => Column(
|
|
children: [
|
|
Padding(
|
|
padding: const EdgeInsets.all(16),
|
|
child: Container(
|
|
decoration:
|
|
const BoxDecoration(color: AppColor.secondaryColor),
|
|
child: TextField(
|
|
decoration: InputDecoration(
|
|
border: const OutlineInputBorder(
|
|
borderRadius: BorderRadius.only(),
|
|
gapPadding: 4,
|
|
borderSide: BorderSide(
|
|
color: AppColor.redColor,
|
|
width: 2,
|
|
)),
|
|
suffixIcon: InkWell(
|
|
onTap: () async {
|
|
if (controller.passengerController.text.length >
|
|
4) {
|
|
await controller.getPassengers();
|
|
|
|
Get.defaultDialog(
|
|
title: controller.passengers['message'][0]
|
|
['email'],
|
|
titleStyle: AppStyle.title,
|
|
content: Column(
|
|
mainAxisAlignment:
|
|
MainAxisAlignment.spaceBetween,
|
|
children: [
|
|
Text(
|
|
'Name is ${controller.passengers['message'][0]['first_name']} ${controller.passengers['message'][0]['last_name']}',
|
|
style: AppStyle.title,
|
|
),
|
|
Text(
|
|
'phone is ${controller.passengers['message'][0]['phone']}',
|
|
style: AppStyle.title,
|
|
),
|
|
],
|
|
),
|
|
confirm: MyElevatedButton(
|
|
title: 'Go To Details'.tr,
|
|
onPressed: () {
|
|
Get.to(
|
|
() => const PassengerDetailsPage(),
|
|
arguments: {
|
|
'data': controller
|
|
.passengers['message'][0],
|
|
});
|
|
}));
|
|
}
|
|
},
|
|
child: const Icon(Icons.search)),
|
|
hintText: 'Search for Passenger'.tr,
|
|
hintStyle: AppStyle.title,
|
|
hintMaxLines: 1,
|
|
prefixIcon: IconButton(
|
|
onPressed: () async {
|
|
controller.passengerController.clear();
|
|
controller.clearPlaces();
|
|
},
|
|
icon: Icon(
|
|
Icons.clear,
|
|
color: Colors.red[300],
|
|
),
|
|
),
|
|
),
|
|
controller: controller.passengerController,
|
|
),
|
|
),
|
|
)
|
|
],
|
|
));
|
|
}
|