import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:marco/controller/expense/add_expense_controller.dart'; import 'package:marco/helpers/widgets/my_spacing.dart'; import 'package:marco/helpers/widgets/my_text.dart'; import 'package:marco/helpers/utils/base_bottom_sheet.dart'; class EmployeeSelectorBottomSheet extends StatelessWidget { final AddExpenseController controller = Get.find(); EmployeeSelectorBottomSheet({super.key}); @override Widget build(BuildContext context) { return BaseBottomSheet( title: "Search Employee", onCancel: () => Get.back(), onSubmit: () {}, showButtons: false, child: Obx(() { return Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ TextField( controller: controller.employeeSearchController, decoration: InputDecoration( hintText: "Search by name, email...", prefixIcon: const Icon(Icons.search), border: OutlineInputBorder( borderRadius: BorderRadius.circular(8), ), contentPadding: const EdgeInsets.symmetric(horizontal: 12, vertical: 10), ), onChanged: (value) => controller.searchEmployees(value), ), MySpacing.height(12), SizedBox( height: 400, // Adjust this if needed child: controller.isSearchingEmployees.value ? const Center(child: CircularProgressIndicator()) : controller.employeeSearchResults.isEmpty ? Center( child: MyText.bodyMedium( "No employees found.", fontWeight: 500, ), ) : ListView.builder( itemCount: controller.employeeSearchResults.length, itemBuilder: (_, index) { final emp = controller.employeeSearchResults[index]; final fullName = '${emp.firstName} ${emp.lastName}'.trim(); return ListTile( title: MyText.bodyLarge( fullName.isNotEmpty ? fullName : "Unnamed", fontWeight: 600, ), onTap: () { controller.selectedPaidBy.value = emp; Get.back(); }, ); }, ), ), ], ); }), ); } }