-
Notifications
You must be signed in to change notification settings - Fork 36
widgets:w_picker_time.dart
Nhan Cao edited this page Jun 8, 2023
·
1 revision
import 'package:flutter/cupertino.dart';
import 'package:flutter/services.dart';
import 'package:nft/utils/app_extension.dart';
import 'package:nft/utils/app_style.dart';
import 'package:nft/widgets/w_bottom_action_sheet.dart';
import 'package:nft/widgets/w_button_inkwell.dart';
import 'package:nft/widgets/w_divider_line.dart';
/// Use: final Duration duration = await WPickerDate.showPicker(context);
class WPickerTime extends StatefulWidget {
const WPickerTime({Key? key, this.initDuration}) : super(key: key);
final Duration? initDuration;
static Future<Duration?> showPicker(BuildContext context, {Duration? initDuration}) {
return showCupertinoModalPopup<Duration>(
context: context,
builder: (BuildContext context) {
return WPickerTime(
initDuration: initDuration,
);
});
}
@override
_WPickerTimeState createState() => _WPickerTimeState();
}
class _WPickerTimeState extends State<WPickerTime> {
Duration selected = const Duration(minutes: 1);
@override
Widget build(BuildContext context) {
final bool isTimeValid = selected > Duration.zero;
return WBottomActionSheet(
body: Container(
child: Column(
children: <Widget>[
Container(
height: 50,
alignment: Alignment.center,
child: Text(
'Pick a duration',
style: normalTextStyle(17.SP, color: const Color(0xFF8F8F8F)),
),
),
const WDividerLine(),
Container(
height: 200,
child: CupertinoTimerPicker(
initialTimerDuration: widget.initDuration ?? selected,
mode: CupertinoTimerPickerMode.hm,
onTimerDurationChanged: (Duration value) {
HapticFeedback.selectionClick();
setState(() {
selected = value;
});
},
),
),
const WDividerLine(),
WButtonInkwell(
child: Container(
height: 57,
alignment: Alignment.center,
child: Text(
'Confirm',
style: normalTextStyle(17.SP, color: const Color(0xFF0080FA).withOpacity(isTimeValid ? 1 : 0.4)),
),
),
onPressed: isTimeValid
? () {
Navigator.of(context).pop(selected);
}
: null,
),
],
),
),
);
}
}-
widgets
- o_toast.dart
- w_behide_keyboard.dart
- w_border_shadow.dart
- w_bottom_action_sheet.dart
- w_button_circle.dart
- w_button_inkwell.dart
- w_button_raised_flat.dart
- w_button_rounded.dart
- w_card_rounded.dart
- w_card_shadow.dart
- w_dialog_alert.dart
- w_dialog_delete.dart
- w_divider_line.dart
- w_keyboard_detector.dart
- w_marquee.dart
- w_picker_date.dart
- w_picker_time.dart
- w_picker_value.dart
- w_syspadding.dart
- w_text_shadow.dart