Skip to content

Commit

Permalink
Merge pull request #68 from edTheGuy00/refactoring
Browse files Browse the repository at this point in the history
[WIP] Refactoring - Move out default styles
  • Loading branch information
hyochan committed Feb 15, 2019
2 parents 987ce7f + 3e7bf10 commit f9aa8ec
Show file tree
Hide file tree
Showing 2 changed files with 72 additions and 71 deletions.
95 changes: 24 additions & 71 deletions lib/flutter_calendar_carousel.dart
Original file line number Diff line number Diff line change
Expand Up @@ -5,58 +5,13 @@ import 'dart:async';
import 'package:date_utils/date_utils.dart';
import 'package:flutter/material.dart';
import 'package:flutter_calendar_carousel/classes/event_list.dart';
import 'package:flutter_calendar_carousel/src/default_styles.dart';
import 'package:intl/date_symbol_data_local.dart';
import 'package:intl/intl.dart' show DateFormat;

typedef MarkedDateIconBuilder<T> = Widget Function(T event);

class CalendarCarousel<T> extends StatefulWidget {
final TextStyle defaultHeaderTextStyle = TextStyle(
fontSize: 20.0,
color: Colors.blue,
);
final TextStyle defaultPrevDaysTextStyle = TextStyle(
color: Colors.grey,
fontSize: 14.0,
);
final TextStyle defaultNextDaysTextStyle = TextStyle(
color: Colors.grey,
fontSize: 14.0,
);
final TextStyle defaultDaysTextStyle = TextStyle(
color: Colors.black,
fontSize: 14.0,
);
final TextStyle defaultTodayTextStyle = TextStyle(
color: Colors.white,
fontSize: 14.0,
);
final TextStyle defaultSelectedDayTextStyle = TextStyle(
color: Colors.white,
fontSize: 14.0,
);
final TextStyle defaultWeekdayTextStyle = TextStyle(
color: Colors.deepOrange,
fontSize: 14.0,
);
final TextStyle defaultWeekendTextStyle = TextStyle(
color: Colors.pinkAccent,
fontSize: 14.0,
);
final TextStyle defaultInactiveDaysTextStyle = TextStyle(
color: Colors.black38,
fontSize: 14.0,
);
final TextStyle defaultInactiveWeekendTextStyle = TextStyle(
color: Colors.pinkAccent.withOpacity(0.6),
fontSize: 14.0,
);
final Widget defaultMarkedDateWidget = Container(
margin: EdgeInsets.symmetric(horizontal: 1.0),
color: Colors.blueAccent,
height: 4.0,
width: 4.0,
);

final double viewportFraction;
final TextStyle prevDaysTextStyle;
Expand Down Expand Up @@ -261,7 +216,7 @@ class _CalendarState<T> extends State<CalendarCarousel<T>> {
child: DefaultTextStyle(
style: widget.headerTextStyle != null
? widget.headerTextStyle
: widget.defaultHeaderTextStyle,
: defaultHeaderTextStyle,
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
Expand Down Expand Up @@ -381,7 +336,7 @@ class _CalendarState<T> extends State<CalendarCarousel<T>> {
if (isPrevMonthDay) {
now = now.subtract(Duration(days: _startWeekday - index));
textStyle = widget.prevDaysTextStyle;
defaultTextStyle = widget.defaultPrevDaysTextStyle;
defaultTextStyle = defaultPrevDaysTextStyle;
} else if (isThisMonthDay) {
now = DateTime(year, month, index + 1 - _startWeekday);
textStyle = isSelectedDay
Expand All @@ -390,14 +345,14 @@ class _CalendarState<T> extends State<CalendarCarousel<T>> {
? widget.todayTextStyle
: widget.daysTextStyle;
defaultTextStyle = isSelectedDay
? widget.defaultSelectedDayTextStyle
? defaultSelectedDayTextStyle
: isToday
? widget.defaultTodayTextStyle
: widget.defaultDaysTextStyle;
? defaultTodayTextStyle
: defaultDaysTextStyle;
} else {
now = DateTime(year, month, index + 1 - _startWeekday);
textStyle = widget.nextDaysTextStyle;
defaultTextStyle = widget.defaultNextDaysTextStyle;
defaultTextStyle = defaultNextDaysTextStyle;
}
bool isSelectable = true;
if (widget.minSelectedDate != null &&
Expand Down Expand Up @@ -463,18 +418,17 @@ class _CalendarState<T> extends State<CalendarCarousel<T>> {
!isSelectedDay &&
!isToday
? (isPrevMonthDay
? widget.defaultPrevDaysTextStyle
? defaultPrevDaysTextStyle
: isNextMonthDay
? widget.defaultNextDaysTextStyle
? defaultNextDaysTextStyle
: isSelectable
? widget.defaultWeekendTextStyle
: widget
.defaultInactiveWeekendTextStyle)
? defaultWeekendTextStyle
: defaultInactiveWeekendTextStyle)
: isToday
? widget.defaultTodayTextStyle
? defaultTodayTextStyle
: isSelectable
? defaultTextStyle
: widget.defaultInactiveDaysTextStyle,
: defaultInactiveDaysTextStyle,
child: Text(
'${now.day}',
style: (_localeDate.dateSymbols.WEEKENDRANGE
Expand Down Expand Up @@ -572,21 +526,21 @@ class _CalendarState<T> extends State<CalendarCarousel<T>> {
TextStyle defaultTextStyle;
if (isPrevMonthDay) {
textStyle = widget.prevDaysTextStyle;
defaultTextStyle = widget.defaultPrevDaysTextStyle;
defaultTextStyle = defaultPrevDaysTextStyle;
} else if (isThisMonthDay) {
textStyle = isSelectedDay
? widget.selectedDayTextStyle
: isToday
? widget.todayTextStyle
: widget.daysTextStyle;
defaultTextStyle = isSelectedDay
? widget.defaultSelectedDayTextStyle
? defaultSelectedDayTextStyle
: isToday
? widget.defaultTodayTextStyle
: widget.defaultDaysTextStyle;
? defaultTodayTextStyle
: defaultDaysTextStyle;
} else {
textStyle = widget.nextDaysTextStyle;
defaultTextStyle = widget.defaultNextDaysTextStyle;
defaultTextStyle = defaultNextDaysTextStyle;
}
bool isSelectable = true;
if (widget.minSelectedDate != null &&
Expand Down Expand Up @@ -657,11 +611,10 @@ class _CalendarState<T> extends State<CalendarCarousel<T>> {
!isPrevMonthDay &&
!isNextMonthDay
? (isSelectable
? widget.defaultWeekendTextStyle
: widget
.defaultInactiveWeekendTextStyle)
? defaultWeekendTextStyle
: defaultInactiveWeekendTextStyle)
: isToday
? widget.defaultTodayTextStyle
? defaultTodayTextStyle
: defaultTextStyle,
child: Text(
'${now.day}',
Expand Down Expand Up @@ -904,7 +857,7 @@ class _CalendarState<T> extends State<CalendarCarousel<T>> {
margin: widget.weekDayMargin,
child: Center(
child: DefaultTextStyle(
style: widget.defaultWeekdayTextStyle,
style: defaultWeekdayTextStyle,
child: Text(
weekDay,
style: widget.weekdayTextStyle,
Expand All @@ -925,7 +878,7 @@ class _CalendarState<T> extends State<CalendarCarousel<T>> {
if (markedDates.contains(now)) {
return widget.markedDateWidget != null
? widget.markedDateWidget
: widget.defaultMarkedDateWidget;
: defaultMarkedDateWidget;
}
}
return Container();
Expand Down Expand Up @@ -1014,7 +967,7 @@ class _CalendarState<T> extends State<CalendarCarousel<T>> {
if (widget.markedDateWidget != null) {
tmp.add(widget.markedDateWidget);
} else {
tmp.add(widget.defaultMarkedDateWidget);
tmp.add(defaultMarkedDateWidget);
}
}
});
Expand Down
48 changes: 48 additions & 0 deletions lib/src/default_styles.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
import 'package:flutter/material.dart';

const TextStyle defaultHeaderTextStyle = const TextStyle(
fontSize: 20.0,
color: Colors.blue,
);
const TextStyle defaultPrevDaysTextStyle = const TextStyle(
color: Colors.grey,
fontSize: 14.0,
);
const TextStyle defaultNextDaysTextStyle = const TextStyle(
color: Colors.grey,
fontSize: 14.0,
);
const TextStyle defaultDaysTextStyle = const TextStyle(
color: Colors.black,
fontSize: 14.0,
);
const TextStyle defaultTodayTextStyle = const TextStyle(
color: Colors.white,
fontSize: 14.0,
);
const TextStyle defaultSelectedDayTextStyle = const TextStyle(
color: Colors.white,
fontSize: 14.0,
);
const TextStyle defaultWeekdayTextStyle = const TextStyle(
color: Colors.deepOrange,
fontSize: 14.0,
);
const TextStyle defaultWeekendTextStyle = const TextStyle(
color: Colors.pinkAccent,
fontSize: 14.0,
);
const TextStyle defaultInactiveDaysTextStyle = const TextStyle(
color: Colors.black38,
fontSize: 14.0,
);
final TextStyle defaultInactiveWeekendTextStyle = TextStyle(
color: Colors.pinkAccent.withOpacity(0.6),
fontSize: 14.0,
);
final Widget defaultMarkedDateWidget = Container(
margin: EdgeInsets.symmetric(horizontal: 1.0),
color: Colors.blueAccent,
height: 4.0,
width: 4.0,
);

0 comments on commit f9aa8ec

Please sign in to comment.