Aidra Connect 10.0.2+16
Aidra Connect Mobile Application
Loading...
Searching...
No Matches
expected_date_field.dart
Go to the documentation of this file.
1import 'package:flutter/material.dart';
2import 'package:flutter_screenutil/flutter_screenutil.dart';
3import 'package:intl/intl.dart';
4
5class ExpectedDateField extends StatelessWidget {
7 super.key,
8 required this.expectedDate,
9 required this.onDatePicked,
10 required this.isEditingField,
11 });
12
13 final bool isEditingField;
14 final DateTime expectedDate;
15 final Function(DateTime pickedDate) onDatePicked;
16
17 @override
18 Widget build(BuildContext context) {
19 return GestureDetector(
20 onTap: () async {
21 final DateTime? picked = await showDatePicker(
22 context: context,
23 initialDate: isEditingField
25 : expectedDate.isAfter(DateTime.now())
27 : DateTime.now(),
28 firstDate: isEditingField ? expectedDate : DateTime.now(),
29 lastDate: DateTime(2100),
30 );
31 if (picked != null && picked != expectedDate) {
32 onDatePicked(picked);
33 }
34 },
35 child: Container(
36 width: MediaQuery.of(context).size.width,
37 padding: EdgeInsets.symmetric(horizontal: 0.sp, vertical: 10.9.sp),
38 decoration: BoxDecoration(
39 borderRadius: BorderRadius.circular(10),
40 color: Theme.of(context).colorScheme.surface,
41 ),
42 child: Center(
43 child: Text(
44 DateFormat.yMMMEd('en_US').format(expectedDate),
45 style: Theme.of(context).textTheme.bodySmall?.copyWith(),
46 ),
47 ),
48 ),
49 );
50 }
51}
final DateTime expectedDate
final Function(DateTime pickedDate) onDatePicked
const ExpectedDateField({ super.key, required this.expectedDate, required this.onDatePicked, required this.isEditingField, })
final VoidCallback onTap
final Widget child
override Widget build(BuildContext context)