showCustomTimePicker static method

Future<TimeOfDay?> showCustomTimePicker({
  1. TimeOfDay? initialTime,
  2. String? helpText,
  3. String? cancelText,
  4. String? confirmText,
  5. TimePickerEntryMode initialEntryMode = TimePickerEntryMode.dial,
  6. Color? primaryColor,
  7. Color? textColor,
  8. Color? backgroundColor,
  9. bool use24HourFormat = false,
  10. bool barrierDismissible = true,
})

Implementation

static Future<TimeOfDay?> showCustomTimePicker({
  TimeOfDay? initialTime,
  String? helpText,
  String? cancelText,
  String? confirmText,
  TimePickerEntryMode initialEntryMode = TimePickerEntryMode.dial,
  Color? primaryColor,
  Color? textColor,
  Color? backgroundColor,
  bool use24HourFormat = false,
  bool barrierDismissible = true,
}) async {
  initialTime ??= TimeOfDay.now();
  primaryColor ??= AppColors.primary;
  backgroundColor ??= Colors.white;
  textColor ??= AppColors.text;

  return await showTimePicker(
    context: Get.context!,
    initialTime: initialTime,
    helpText: helpText,
    cancelText: cancelText,
    confirmText: confirmText,
    initialEntryMode: initialEntryMode,
    builder: (context, child) {
      return Theme(
        data: Theme.of(context).copyWith(
          colorScheme: ColorScheme.light(
            primary: primaryColor ?? AppColors.primary,
            onPrimary: Colors.white,
            onSurface: textColor ?? AppColors.text,
            surface: backgroundColor ?? Colors.white,
          ),
          textButtonTheme: TextButtonThemeData(
            style: TextButton.styleFrom(
              foregroundColor: primaryColor ?? AppColors.primary,
              textStyle: AppTextThemes.button(),
            ),
          ),
          timePickerTheme: TimePickerThemeData(
            backgroundColor: backgroundColor ?? Colors.white,
            hourMinuteTextColor: primaryColor ?? AppColors.primary,
            hourMinuteColor:
                (primaryColor ?? AppColors.primary).withOpacity(0.1),
            dayPeriodTextColor: primaryColor ?? AppColors.primary,
            dayPeriodColor:
                (primaryColor ?? AppColors.primary).withOpacity(0.1),
            dialHandColor: primaryColor ?? AppColors.primary,
            dialBackgroundColor:
                (primaryColor ?? AppColors.primary).withOpacity(0.1),
            dialTextColor: textColor ?? AppColors.text,
            entryModeIconColor: primaryColor ?? AppColors.primary,
            helpTextStyle:
                AppTextThemes.bodyMedium(color: textColor ?? AppColors.text),
            dayPeriodTextStyle: AppTextThemes.button(
                color: primaryColor ?? AppColors.primary),
            hourMinuteTextStyle: AppTextThemes.heading4(
                color: primaryColor ?? AppColors.primary),
            dialTextStyle:
                AppTextThemes.bodyMedium(color: textColor ?? AppColors.text),
          ),
          dialogBackgroundColor: backgroundColor ?? Colors.white,
          textTheme: TextTheme(
            labelSmall: AppTextThemes.caption(
                color: (textColor ?? AppColors.text).withOpacity(0.7)),
          ),
        ),
        child: child!,
      );
    },
    barrierDismissible: barrierDismissible,
  );
}