first step from hijri Calender

merge-requests/883/head
Elham Rababh 4 years ago
parent eb89dc3395
commit 8e85bb239e

@ -0,0 +1,4 @@
enum CalenderType{
Gregorian,
Hijri,
}

@ -19,6 +19,10 @@ import 'package:doctor_app_flutter/widgets/shared/loader/gif_loader_dialog_utils
import 'package:doctor_app_flutter/widgets/shared/text_fields/app-textfield-custom.dart';
import 'package:flutter/material.dart';
import 'package:hijri/hijri_calendar.dart';
import 'package:hijri_picker/hijri_picker.dart';
import 'package:doctor_app_flutter/core/enum/CalenderType.dart';
class RegisterSearchPatientPage extends StatefulWidget {
final Function changePageViewIndex;
@ -49,6 +53,10 @@ class _RegisterSearchPatientPageState extends State<RegisterSearchPatientPage> {
DateTime _birthDate;
String birthdateError;
var selectedHijriDate = new HijriCalendar.now();
CalenderType calenderType = CalenderType.Gregorian;
@override
Widget build(BuildContext context) {
@ -157,6 +165,37 @@ class _RegisterSearchPatientPageState extends State<RegisterSearchPatientPage> {
SizedBox(
height: 10,
),
Row(
children: [
Expanded(
child: RadioListTile<CalenderType>(
title: AppText("Gregorian"),
value: CalenderType.Gregorian,
groupValue: calenderType,
onChanged: (CalenderType value) {
setState(() {
calenderType = value;
});
},
),
),
Expanded(
child: RadioListTile<CalenderType>(
title: AppText("Hijri"),
value: CalenderType.Hijri,
groupValue: calenderType,
onChanged: (CalenderType value) {
setState(() {
calenderType = value;
});
},
),
),
],
),
SizedBox(
height: 10,
),
AppTextFieldCustom(
height: screenSize.height * 0.075,
hintText: "Birthdate",
@ -300,16 +339,39 @@ class _RegisterSearchPatientPageState extends State<RegisterSearchPatientPage> {
}
Future _selectDate(BuildContext context, DateTime dateTime,
Function(DateTime picked) updateDate) async {
final DateTime picked = await showDatePicker(
context: context,
initialDate: dateTime,
firstDate: DateTime(DateTime.now().year - 150),
lastDate: DateTime(DateTime.now().year + 150),
initialEntryMode: DatePickerEntryMode.calendar,
);
if (picked != null && picked != dateTime) {
updateDate(picked);
if(calenderType == CalenderType.Hijri) {
final HijriCalendar picked = await showHijriDatePicker(
context: context,
initialDate: selectedHijriDate,
lastDate: new HijriCalendar()
..hYear = 1445
..hMonth = 9
..hDay = 25,
firstDate: new HijriCalendar()
..hYear = 1438
..hMonth = 12
..hDay = 25,
initialDatePickerMode: DatePickerMode.day,
);
if (picked != null && selectedHijriDate != picked)
setState(() {
selectedHijriDate = picked;
});
} else {
final DateTime picked = await showDatePicker(
context: context,
initialDate: dateTime,
firstDate: DateTime(DateTime.now().year - 150),
lastDate: DateTime(DateTime.now().year + 150),
initialEntryMode: DatePickerEntryMode.calendar,
);
if (picked != null && picked != dateTime) {
updateDate(picked);
}
}
}
void openListDialogField(String attributeName, String attributeValueId,

@ -581,6 +581,13 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.3"
hijri_picker:
dependency: "direct main"
description:
name: hijri_picker
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.0"
html:
dependency: "direct main"
description:
@ -699,7 +706,7 @@ packages:
name: meta
url: "https://pub.dartlang.org"
source: hosted
version: "1.3.0-nullsafety.4"
version: "1.3.0-nullsafety.3"
mime:
dependency: transitive
description:
@ -1033,7 +1040,7 @@ packages:
name: stack_trace
url: "https://pub.dartlang.org"
source: hosted
version: "1.10.0-nullsafety.2"
version: "1.10.0-nullsafety.1"
sticky_headers:
dependency: "direct main"
description:
@ -1238,5 +1245,5 @@ packages:
source: hosted
version: "2.2.1"
sdks:
dart: ">=2.10.2 <=2.11.0-213.1.beta"
dart: ">=2.10.2 <2.11.0"
flutter: ">=1.22.2 <2.0.0"

@ -105,6 +105,7 @@ dependencies:
# Hijri
hijri: ^2.0.0
hijri_picker: ^2.0.0

Loading…
Cancel
Save