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:doctor_app_flutter/widgets/shared/text_fields/app-textfield-custom.dart';
import 'package:flutter/material.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 { class RegisterSearchPatientPage extends StatefulWidget {
final Function changePageViewIndex; final Function changePageViewIndex;
@ -49,6 +53,10 @@ class _RegisterSearchPatientPageState extends State<RegisterSearchPatientPage> {
DateTime _birthDate; DateTime _birthDate;
String birthdateError; String birthdateError;
var selectedHijriDate = new HijriCalendar.now();
CalenderType calenderType = CalenderType.Gregorian;
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
@ -157,6 +165,37 @@ class _RegisterSearchPatientPageState extends State<RegisterSearchPatientPage> {
SizedBox( SizedBox(
height: 10, 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( AppTextFieldCustom(
height: screenSize.height * 0.075, height: screenSize.height * 0.075,
hintText: "Birthdate", hintText: "Birthdate",
@ -300,16 +339,39 @@ class _RegisterSearchPatientPageState extends State<RegisterSearchPatientPage> {
} }
Future _selectDate(BuildContext context, DateTime dateTime, Future _selectDate(BuildContext context, DateTime dateTime,
Function(DateTime picked) updateDate) async { Function(DateTime picked) updateDate) async {
final DateTime picked = await showDatePicker( if(calenderType == CalenderType.Hijri) {
context: context, final HijriCalendar picked = await showHijriDatePicker(
initialDate: dateTime, context: context,
firstDate: DateTime(DateTime.now().year - 150), initialDate: selectedHijriDate,
lastDate: DateTime(DateTime.now().year + 150),
initialEntryMode: DatePickerEntryMode.calendar, lastDate: new HijriCalendar()
); ..hYear = 1445
if (picked != null && picked != dateTime) { ..hMonth = 9
updateDate(picked); ..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, void openListDialogField(String attributeName, String attributeValueId,

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

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

Loading…
Cancel
Save