selectTime method
Implementation
Future<TimeOfDay?> selectTime({TimeOfDay? initialTime}) async {
return await showTimePicker(
context: Get.context!,
initialTime: initialTime ?? TimeOfDay.now(),
builder: (BuildContext context, Widget? child) {
return MediaQuery(
data: MediaQuery.of(context).copyWith(alwaysUse24HourFormat: false), // Ensure AM/PM format
child: Theme(
data: Theme.of(context).copyWith(
colorScheme: ColorScheme.light(
primary: AppTheme.themeColors.primary, // Header background color
onPrimary: AppTheme.themeColors.tertiary, // Header text color
onSurface: AppTheme.themeColors.text, // Body text color
),
textButtonTheme: TextButtonThemeData(
style: TextButton.styleFrom(
foregroundColor: AppTheme.themeColors.primary, // Button text color
),
),
timePickerTheme: TimePickerThemeData(
dialBackgroundColor: AppTheme.themeColors.primary.withAlpha(10), // Dial background color
dialHandColor: AppTheme.themeColors.primary, // Dial hand color
dayPeriodTextColor: WidgetStateColor.resolveWith((states) {
// Customize AM/PM text colors
if (states.contains(WidgetState.selected)) {
return AppTheme.themeColors.tertiary; // Selected text color
}
return AppTheme.themeColors.primary; // Default text color
}),
dayPeriodColor: WidgetStateColor.resolveWith((states) {
// Customize AM/PM button background color
if (states.contains(WidgetState.selected)) {
return AppTheme.themeColors.primary; // Selected background color
}
return AppTheme.themeColors.base; // Default background color
}),
), dialogTheme: DialogThemeData(backgroundColor: AppTheme.themeColors.darkGray),
),
child: child!,
),
);
},
);
}