import 'package:flutter/material.dart'; import 'package:hmg_patient_app_new/core/utils/utils.dart'; import 'package:hmg_patient_app_new/extensions/widget_extensions.dart'; class DatePickerWidget extends StatelessWidget { final String labelText; final String hintText; final String? selectedValue; final Function(String?)? onChange; final Function(bool)? onCalendarTypeChanged; final bool isEnable; final bool isBorderAllowed; final bool isAllowRadius; final EdgeInsetsGeometry? padding; final String lang; const DatePickerWidget({ Key? key, required this.labelText, required this.hintText, this.selectedValue, this.onChange, this.onCalendarTypeChanged, this.isEnable = true, this.isBorderAllowed = true, this.isAllowRadius = true, this.padding, this.lang = 'en', }) : super(key: key); @override Widget build(BuildContext context) { return Container( padding: padding, alignment: Alignment.center, decoration: RoundedRectangleBorder().toSmoothCornerDecoration( color: Colors.white, borderRadius: isAllowRadius ? 15 : null, side: isBorderAllowed ? BorderSide(color: const Color(0xffefefef), width: 1) : null, ), child: Column( mainAxisSize: MainAxisSize.min, crossAxisAlignment: CrossAxisAlignment.start, children: [ _buildLabelText(), _buildDatePicker(context), ], ), ); } Widget _buildLabelText() { return Text( labelText, style: const TextStyle( fontSize: 12, fontWeight: FontWeight.w500, color: Color(0xff898A8D), letterSpacing: -0.2, height: 18 / 12, ), ); } Widget _buildDatePicker(BuildContext context) { return GestureDetector( onTap: isEnable ? () async { // bool isGregorian = true; // final picked = await showHijriGregBottomSheet( // context, // switcherIcon: Utils.buildSvgWithAssets(icon: "assets/images/svg/language.svg") // language: lang, // fontFamily: "poppins", // initialShowGregorian: true, // initialDate: DateTime.now(), // okWidget: Padding(padding: const EdgeInsets.only(right: 8.0), child: Utils.buildSvgWithAssets(icon: "assets/images/svg/confirm.svg")), // cancelWidget: Padding(padding: const EdgeInsets.only(right: 8.0), child: Utils.buildSvgWithAssets(icon: "assets/images/svg/cancel.svg", iconColor: Colors.white)), // onCalendarTypeChanged: (bool value) { // isGregorian = value; // }, // ); // // if (picked != null && onChange != null) { // if (onCalendarTypeChanged != null) { // onCalendarTypeChanged!.call(isGregorian); // } // onChange!(picked.toIso8601String()); // } } : null, child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, crossAxisAlignment: CrossAxisAlignment.center, children: [ Expanded( child: Text( (selectedValue == null || selectedValue!.isEmpty) ? hintText : selectedValue!, textAlign: TextAlign.left, textDirection: TextDirection.ltr, style: TextStyle( fontSize: 14, height: 21 / 14, fontWeight: FontWeight.w500, color: (selectedValue != null && selectedValue!.isNotEmpty) ? const Color(0xff2E3039) : const Color(0xffB0B0B0), letterSpacing: -0.2, ), ), ), const Icon(Icons.keyboard_arrow_down_outlined), ], ), ); } }