datePickerStory top-level property
Story
datePickerStory
getter/setter pair
Implementation
Story datePickerStory = Story(
name: 'Date Picker',
builder: (context) {
final variant = context.knobs.options(
label: 'Date Picker Variant',
options: [
Option(label: 'Basic', value: DatePickerVariant.basic),
Option(label: 'Scrollable', value: DatePickerVariant.scrollable),
Option(label: 'Slider', value: DatePickerVariant.slider),
],
initial: DatePickerVariant.basic,
);
final buttonType = context.knobs.options(
label: 'Date Picker Footer Button Variant',
options: [
Option(label: 'Filled', value: DatePickerFooterButtonType.filled),
Option(label: 'Ghost', value: DatePickerFooterButtonType.ghost),
],
initial: DatePickerFooterButtonType.filled,
);
final title =
context.knobs.text(label: 'Date Picker Title', initial: 'Pick A Date');
final cancelButtonText =
context.knobs.text(label: 'Cancel Button Text', initial: 'Cancel');
final okButtonText =
context.knobs.text(label: 'Ok Button Text', initial: 'Set');
// Function to show the date picker when the button is clicked
void _showDatePicker() {
showDialog(
context: context,
builder: (BuildContext context) {
return AlertDialog(
contentPadding: EdgeInsets.all(0),
content: Builder(
builder: (BuildContext context) {
final datePicker = DDSDatePicker(
initialDate: DateTime.now(),
firstDate: DateTime(2000),
lastDate: DateTime(2100),
variant: variant,
footerButtonType: buttonType,
onConfirm: (date) {
print(date);
},
title: title,
cancelButtonText: cancelButtonText,
okButtonText: okButtonText,
onCancel: () {
print('cancel');
},
);
return Container(
width: MediaQuery.of(context).size.width * 0.9,
height: MediaQuery.of(context).size.height * 0.7,
child: datePicker,
);
},
),
);
},
);
}
return Column(
mainAxisSize: MainAxisSize.min,
children: [
ElevatedButton(
onPressed: _showDatePicker,
child: Text('Open Date Picker'),
),
],
);
},
);