improvements.

main_design2.0
Sikander Saleem 2 years ago
parent 3725adb0aa
commit b51555c2f4

@ -41,7 +41,7 @@ class _DailyFragmentState extends State<DailyFragment> {
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.stretch, crossAxisAlignment: CrossAxisAlignment.stretch,
children: [ children: [
snapshot.isCalendarLoading ? const Center(child: CircularProgressIndicator()) : DateFormat("EEEE, d MMMM, yyyy", context.isAr? "ar" : "en").format(DateTime.now()).heading5(context), DateFormat("EEEE, d MMMM, yyyy", context.isAr ? "ar" : "en").format(DateTime.now()).heading5(context),
if (snapshot.calendarRequests?.requestsDetails?.isNotEmpty ?? false) const Divider().defaultStyle(context), if (snapshot.calendarRequests?.requestsDetails?.isNotEmpty ?? false) const Divider().defaultStyle(context),
ListView.separated( ListView.separated(
shrinkWrap: true, shrinkWrap: true,

@ -41,60 +41,58 @@ class _MonthlyFragmentState extends State<MonthlyFragment> {
child: Column( child: Column(
children: [ children: [
Consumer<AllRequestsProvider>( Consumer<AllRequestsProvider>(
builder: (context, snapshot, _) => snapshot.isCalendarLoading builder: (context, snapshot, _) => TableCalendar(
? const Center(child: CircularProgressIndicator()) firstDay: _firstDate,
: TableCalendar( lastDay: _lastDate,
firstDay: _firstDate, focusedDay: _initialDate,
lastDay: _lastDate, calendarFormat: CalendarFormat.month,
focusedDay: _initialDate, weekendDays: const [],
calendarFormat: CalendarFormat.month, rowHeight: 45,
weekendDays: const [], availableGestures: AvailableGestures.none,
rowHeight: 45, calendarBuilders: CalendarBuilders(
availableGestures: AvailableGestures.none, headerTitleBuilder: (context, dateTime) => CalendarHeader(dateFormat: DateFormat("MMMM, yyyy", context.isAr ? "ar" : "en"), dateTime: dateTime).onPress(() async {
calendarBuilders: CalendarBuilders( final result = await showDatePicker(
headerTitleBuilder: (context, dateTime) => CalendarHeader(dateFormat: DateFormat("MMMM, yyyy", context.isAr? "ar" : "en"), dateTime: dateTime).onPress(() async { context: context,
final result = await showDatePicker( initialDate: _initialDate,
context: context, firstDate: _firstDate,
initialDate: _initialDate, lastDate: _lastDate,
firstDate: _firstDate, initialDatePickerMode: DatePickerMode.year,
lastDate: _lastDate, );
initialDatePickerMode: DatePickerMode.year, await snapshot.getCalenderRequests(from: DateTime(result.year, result.month), to: DateTime.now());
); if (result != null) {
await snapshot.getCalenderRequests(from: DateTime(result.year, result.month), to: DateTime.now()); _initialDate = result;
if (result != null) { setState(() {});
_initialDate = result; }
setState(() {}); }),
} dowBuilder: (context, dateTime) {
}), final day = DateFormat("EE", context.isAr ? "ar" : "en").format(dateTime).toUpperCase();
dowBuilder: (context, dateTime) { return Align(alignment: Alignment.center, child: day.bodyText(context).custom(color: AppColor.neutral50));
final day = DateFormat("EE", context.isAr? "ar" : "en").format(dateTime).toUpperCase(); },
return Align(alignment: Alignment.center, child: day.bodyText(context).custom(color: AppColor.neutral50)); defaultBuilder: (context, dateTime, _) {
}, final day = DateFormat("d").format(dateTime);
defaultBuilder: (context, dateTime, _) { return CalendarDaysCard(
final day = DateFormat("d").format(dateTime); day: day,
return CalendarDaysCard( fill: snapshot.calendarRequests.requestsDetails?.firstWhere(
day: day, (element) => (element.date != null) && (DateTime.tryParse(element.date)?.difference(dateTime)?.inDays == 0),
fill: snapshot.calendarRequests.requestsDetails?.firstWhere( orElse: () => null,
(element) => (element.date != null) && (DateTime.tryParse(element.date)?.difference(dateTime)?.inDays == 0), ) !=
orElse: () => null, null,
) != ).toShimmer(isShow: snapshot.isCalendarLoading);
null, },
); ),
}, daysOfWeekHeight: 35.toScreenHeight,
), headerStyle: const HeaderStyle(
daysOfWeekHeight: 35.toScreenHeight, leftChevronVisible: false,
headerStyle: const HeaderStyle( rightChevronVisible: false,
leftChevronVisible: false, formatButtonVisible: false,
rightChevronVisible: false, headerPadding: EdgeInsets.all(0),
formatButtonVisible: false, ),
headerPadding: EdgeInsets.all(0), calendarStyle: CalendarStyle(
), isTodayHighlighted: false,
calendarStyle: CalendarStyle( defaultTextStyle: AppTextStyles.bodyText,
isTodayHighlighted: false, defaultDecoration: const BoxDecoration(shape: BoxShape.circle, color: AppColor.neutral30),
defaultTextStyle: AppTextStyles.bodyText, ),
defaultDecoration: const BoxDecoration(shape: BoxShape.circle, color: AppColor.neutral30), ),
),
),
), ),
Column( Column(
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,

@ -48,48 +48,46 @@ class _WeeklyFragmentState extends State<WeeklyFragment> {
return Column( return Column(
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
children: [ children: [
snapshot.isCalendarLoading TableCalendar(
? const Center(child: CircularProgressIndicator()) firstDay: _firstDate,
: TableCalendar( lastDay: _lastDate,
firstDay: _firstDate, focusedDay: _initialDate,
lastDay: _lastDate, calendarFormat: CalendarFormat.week,
focusedDay: _initialDate, weekendDays: const [],
calendarFormat: CalendarFormat.week, onCalendarCreated: (controller) {},
weekendDays: const [], calendarBuilders: CalendarBuilders(
onCalendarCreated: (controller) {}, headerTitleBuilder: (context, dateTime) => Column(
calendarBuilders: CalendarBuilders( crossAxisAlignment: CrossAxisAlignment.stretch,
headerTitleBuilder: (context, dateTime) => Column( children: [
crossAxisAlignment: CrossAxisAlignment.stretch, DateFormat("EEEE, d MMMM, yyyy", context.isAr ? "ar" : "en").format(dateTime).heading5(context),
children: [ 8.height,
DateFormat("EEEE, d MMMM, yyyy", context.isAr? "ar" : "en").format(dateTime).heading5(context), const Divider().defaultStyle(context),
8.height, ],
const Divider().defaultStyle(context), ),
], dowBuilder: (context, dateTime) {
), final day = DateFormat("EE", context.isAr ? "ar" : "en").format(dateTime).toUpperCase();
dowBuilder: (context, dateTime) { return Align(alignment: Alignment.center, child: day.bodyText(context).custom(color: AppColor.neutral50));
final day = DateFormat("EE", context.isAr? "ar" : "en").format(dateTime).toUpperCase(); },
return Align(alignment: Alignment.center, child: day.bodyText(context).custom(color: AppColor.neutral50)); defaultBuilder: (context, dateTime, _) {
}, final day = DateFormat("d").format(dateTime);
defaultBuilder: (context, dateTime, _) { return CalendarDaysCard(
final day = DateFormat("d").format(dateTime); day: day,
return CalendarDaysCard( fill: snapshot.calendarRequests.requestsDetails?.firstWhere(
day: day, (element) => (element.date != null) && (DateTime.tryParse(element.date)?.difference(dateTime)?.inDays == 0),
fill: snapshot.calendarRequests.requestsDetails?.firstWhere( orElse: () => null,
(element) => (element.date != null) && (DateTime.tryParse(element.date)?.difference(dateTime)?.inDays == 0), ) !=
orElse: () => null, null,
) != ).toShimmer(isShow: snapshot.isCalendarLoading);
null, },
); ),
}, daysOfWeekHeight: 35.toScreenHeight,
), headerStyle: const HeaderStyle(leftChevronVisible: false, rightChevronVisible: false, formatButtonVisible: false),
daysOfWeekHeight: 35.toScreenHeight, calendarStyle: CalendarStyle(
headerStyle: const HeaderStyle(leftChevronVisible: false, rightChevronVisible: false, formatButtonVisible: false), isTodayHighlighted: false,
calendarStyle: CalendarStyle( defaultTextStyle: AppTextStyles.bodyText,
isTodayHighlighted: false, defaultDecoration: const BoxDecoration(shape: BoxShape.circle, color: AppColor.neutral30),
defaultTextStyle: AppTextStyles.bodyText, ),
defaultDecoration: const BoxDecoration(shape: BoxShape.circle, color: AppColor.neutral30), ),
),
),
if (snapshot.calendarRequests?.requestsDetails?.isNotEmpty ?? false) const Divider().defaultStyle(context), if (snapshot.calendarRequests?.requestsDetails?.isNotEmpty ?? false) const Divider().defaultStyle(context),
ListView.separated( ListView.separated(
shrinkWrap: true, shrinkWrap: true,

@ -24,38 +24,22 @@ class NotificationsList extends StatelessWidget {
onLazyLoad: onLazyLoad, onLazyLoad: onLazyLoad,
child: SingleChildScrollView( child: SingleChildScrollView(
padding: const EdgeInsets.all(16), padding: const EdgeInsets.all(16),
child: Container( child: ListView.separated(
decoration: ShapeDecoration( shrinkWrap: true,
color: Colors.white, physics: const NeverScrollableScrollPhysics(),
shape: RoundedRectangleBorder( padding: const EdgeInsets.all(0),
borderRadius: BorderRadius.circular(20), itemCount: notifications.length,
), separatorBuilder: (context, itemIndex) => 1.divider.paddingOnly(top: 16, bottom: 16),
shadows: const [ itemBuilder: (context, itemIndex) {
BoxShadow( return NotificationItem(
color: Color(0x07000000), notification: notifications[itemIndex],
blurRadius: 14, onPressed: (notification) {
offset: Offset(0, 0), // todo @sikander, check notifications payload, because notification model is different to need to check from backend
spreadRadius: 0, //Navigator.of(context).pushNamed(FutureRequestServiceDetails.id, arguments: notification.requestId);
) },
], );
), },
child: ListView.separated( ).toShadowContainer(context),
shrinkWrap: true,
physics: const NeverScrollableScrollPhysics(),
padding: const EdgeInsets.all(16),
itemCount: notifications.length,
separatorBuilder: (context, itemIndex) => 1.divider.paddingOnly(top: 16, bottom: 16),
itemBuilder: (context, itemIndex) {
return NotificationItem(
notification: notifications[itemIndex],
onPressed: (notification) {
// todo @sikander, check notifications payload, because notification model is different to need to check from backend
//Navigator.of(context).pushNamed(FutureRequestServiceDetails.id, arguments: notification.requestId);
},
);
},
).toShadowContainer(context),
),
), ),
); );
} }

Loading…
Cancel
Save