cupertinoTimePicker static method
void
cupertinoTimePicker({})
Implementation
static void cupertinoTimePicker({
required Function(DateTime) callback,
String title = 'Select Time',
String btnOKText = 'Select',
String btnCancelText = 'Cancel',
DateTime? initialDate,
DateTime? minDate,
DateTime? maxDate,
CupertinoDatePickerMode mode = CupertinoDatePickerMode.date,
}) {
var output = DateTime.now();
showCupertinoModalPopup(
context: Get.context!,
builder: (_) => CupertinoApp(
debugShowCheckedModeBanner: false,
builder: (context, child) => Container(
height: Get.size.height * 0.40,
decoration: ExDecorator.top(),
child: Column(
children: [
ExDashLine().pOnly(top: 12),
HStack([
title.text
.size(14)
.color(Get.theme.textTheme.displayMedium?.color)
.fontWeight(FontWeight.w500)
.make()
.expand(),
]).pOnly(left: 20, top: 12, bottom: 12),
Divider(),
CupertinoTheme(
data: CupertinoThemeData(
brightness:
Get.isDarkMode ? Brightness.dark : Brightness.light,
textTheme: CupertinoTextThemeData(
dateTimePickerTextStyle: TextStyle(
color: Get.theme.textTheme.bodyLarge?.color,
fontSize: 14,
fontWeight: FontWeight.w400,
decoration: TextDecoration.none,
),
),
),
child: CupertinoDatePicker(
mode: CupertinoDatePickerMode.time,
initialDateTime: initialDate ?? DateTime.now(),
minimumDate: minDate ?? DateTime.now().subtract(1.seconds),
// somehow must like this =,=
maximumDate: maxDate?.add(1.minutes) ?? DateTime(2050),
onDateTimeChanged: (val) => output = val,
dateOrder: DatePickerDateOrder.dmy,
),
).expand(),
HStack(
[
ExButtonElevated(
width: double.infinity,
radius: 0,
backgroundColor: Get.theme.canvasColor,
label: btnCancelText,
labelColor: Vx.red500,
onPressed: Get.back,
).expand(),
1.widthBox,
ExButtonElevated(
width: double.infinity,
radius: 0,
backgroundColor: Get.theme.canvasColor,
label: btnOKText,
labelColor: Get.theme.textTheme.displayLarge?.color,
onPressed: () {
callback.call(output);
Navigator.of(Get.context!).pop();
},
).expand(),
],
),
],
),
),
),
);
}