Skip to content

Commit

Permalink
format code
Browse files Browse the repository at this point in the history
  • Loading branch information
Leptopoda committed Feb 28, 2023
1 parent 02aeb3e commit f23d763
Show file tree
Hide file tree
Showing 10 changed files with 481 additions and 378 deletions.
18 changes: 14 additions & 4 deletions lib/src/customization/calendar_builders.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3,24 +3,34 @@

import 'package:flutter/widgets.dart';

import 'package:table_calendar/src/shared/utils.dart' show DayBuilder, FocusedDayBuilder;
import 'package:table_calendar/src/shared/utils.dart'
show DayBuilder, FocusedDayBuilder;

/// Signature for a function that creates a single event marker for a given `day`.
/// Contains a single `event` associated with that `day`.
typedef SingleMarkerBuilder<T> = Widget? Function(
BuildContext context, DateTime day, T event,);
BuildContext context,
DateTime day,
T event,
);

/// Signature for a function that creates an event marker for a given `day`.
/// Contains a list of `events` associated with that `day`.
typedef MarkerBuilder<T> = Widget? Function(
BuildContext context, DateTime day, List<T> events,);
BuildContext context,
DateTime day,
List<T> events,
);

/// Signature for a function that creates a background highlight for a given `day`.
///
/// Used for highlighting current range selection.
/// Contains a value determining if the given `day` falls within the selected range.
typedef HighlightBuilder = Widget? Function(
BuildContext context, DateTime day, bool isWithinRange,);
BuildContext context,
DateTime day,
bool isWithinRange,
);

/// Class containing all custom builders for `TableCalendar`.
class CalendarBuilders<T> {
Expand Down
5 changes: 4 additions & 1 deletion lib/src/shared/utils.dart
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,10 @@ typedef DayBuilder = Widget? Function(BuildContext context, DateTime day);
/// Signature for a function that creates a widget for a given `day`.
/// Additionally, contains the currently focused day.
typedef FocusedDayBuilder = Widget? Function(
BuildContext context, DateTime day, DateTime focusedDay,);
BuildContext context,
DateTime day,
DateTime focusedDay,
);

/// Signature for a function returning text that can be localized and formatted with `DateFormat`.
typedef TextFormatter = String Function(DateTime date, dynamic locale);
Expand Down
42 changes: 24 additions & 18 deletions lib/src/table_calendar.dart
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,17 @@ import 'package:table_calendar/src/widgets/cell_content.dart';

/// Signature for `onDaySelected` callback. Contains the selected day and focused day.
typedef OnDaySelected = void Function(
DateTime selectedDay, DateTime focusedDay,);
DateTime selectedDay,
DateTime focusedDay,
);

/// Signature for `onRangeSelected` callback.
/// Contains start and end of the selected range, as well as currently focused day.
typedef OnRangeSelected = void Function(
DateTime? start, DateTime? end, DateTime focusedDay,);
DateTime? start,
DateTime? end,
DateTime focusedDay,
);

/// Modes that range selection can operate in.
enum RangeSelectionMode { disabled, toggledOff, toggledOn, enforced }
Expand Down Expand Up @@ -264,9 +269,12 @@ class TableCalendar<T> extends StatefulWidget {
this.onCalendarCreated,
}) : assert(availableCalendarFormats.keys.contains(calendarFormat)),
assert(availableCalendarFormats.length <= CalendarFormat.values.length),
assert(weekendDays.isNotEmpty
&& weekendDays.every(
(day) => day >= DateTime.monday && day <= DateTime.sunday,),),
assert(
weekendDays.isNotEmpty &&
weekendDays.every(
(day) => day >= DateTime.monday && day <= DateTime.sunday,
),
),
focusedDay = normalizeDate(focusedDay),
firstDay = normalizeDate(firstDay),
lastDay = normalizeDate(lastDay),
Expand Down Expand Up @@ -516,15 +524,16 @@ class _TableCalendarState<T> extends State<TableCalendar<T>> {
final cell = widget.calendarBuilders.weekNumberBuilder
?.call(context, weekNumber);

return cell ?? Padding(
padding: const EdgeInsets.symmetric(horizontal: 4),
child: Center(
child: Text(
weekNumber.toString(),
style: widget.calendarStyle.weekNumberTextStyle,
return cell ??
Padding(
padding: const EdgeInsets.symmetric(horizontal: 4),
child: Center(
child: Text(
weekNumber.toString(),
style: widget.calendarStyle.weekNumberTextStyle,
),
),
),
);
);
},
dowBuilder: (BuildContext context, DateTime day) {
Widget? dowCell =
Expand Down Expand Up @@ -711,10 +720,7 @@ class _TableCalendarState<T> extends State<TableCalendar<T>> {
}

int _dayOfYear(DateTime date) {
return normalizeDate(date)
.difference(DateTime.utc(date.year))
.inDays +
1;
return normalizeDate(date).difference(DateTime.utc(date.year)).inDays + 1;
}

bool _isWithinRange(DateTime day, DateTime start, DateTime end) {
Expand All @@ -736,7 +742,7 @@ class _TableCalendarState<T> extends State<TableCalendar<T>> {
}

bool _isDayAvailable(DateTime day) {
if (widget.enabledDayPredicate == null){
if (widget.enabledDayPredicate == null) {
return true;
}

Expand Down
20 changes: 16 additions & 4 deletions lib/src/table_calendar_base.dart
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,10 @@ class _TableCalendarBaseState extends State<TableCalendarBase> {
_pageHeight = ValueNotifier(_getPageHeight(rowCount));

final initialPage = _calculateFocusedPage(
widget.calendarFormat, widget.firstDay, _focusedDay,);
widget.calendarFormat,
widget.firstDay,
_focusedDay,
);

_pageController = PageController(initialPage: initialPage);
widget.onCalendarCreated?.call(_pageController);
Expand Down Expand Up @@ -149,10 +152,16 @@ class _TableCalendarBaseState extends State<TableCalendarBase> {

void _updatePage({bool shouldAnimate = false}) {
final currentIndex = _calculateFocusedPage(
widget.calendarFormat, widget.firstDay, _focusedDay,);
widget.calendarFormat,
widget.firstDay,
_focusedDay,
);

final endIndex = _calculateFocusedPage(
widget.calendarFormat, widget.firstDay, widget.lastDay,);
widget.calendarFormat,
widget.firstDay,
widget.lastDay,
);

if (currentIndex != _previousIndex ||
currentIndex == 0 ||
Expand Down Expand Up @@ -267,7 +276,10 @@ class _TableCalendarBaseState extends State<TableCalendarBase> {
}

int _calculateFocusedPage(
CalendarFormat format, DateTime startDay, DateTime focusedDay,) {
CalendarFormat format,
DateTime startDay,
DateTime focusedDay,
) {
switch (format) {
case CalendarFormat.month:
return _getMonthCount(startDay, focusedDay);
Expand Down
30 changes: 22 additions & 8 deletions lib/src/widgets/calendar_core.dart
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ import 'package:flutter/material.dart';
import 'package:table_calendar/src/shared/utils.dart';
import 'package:table_calendar/src/widgets/calendar_page.dart';


class CalendarCore extends StatelessWidget {
final DateTime? focusedDay;
final DateTime firstDay;
Expand Down Expand Up @@ -156,7 +155,10 @@ class CalendarCore extends StatelessWidget {
}

DateTime _getFocusedDay(
CalendarFormat format, DateTime prevFocusedDay, int pageIndex,) {
CalendarFormat format,
DateTime prevFocusedDay,
int pageIndex,
) {
if (pageIndex == previousIndex) {
return prevFocusedDay;
}
Expand All @@ -169,12 +171,18 @@ class CalendarCore extends StatelessWidget {
day = DateTime.utc(prevFocusedDay.year, prevFocusedDay.month + pageDif);
break;
case CalendarFormat.twoWeeks:
day = DateTime.utc(prevFocusedDay.year, prevFocusedDay.month,
prevFocusedDay.day + pageDif * 14,);
day = DateTime.utc(
prevFocusedDay.year,
prevFocusedDay.month,
prevFocusedDay.day + pageDif * 14,
);
break;
case CalendarFormat.week:
day = DateTime.utc(prevFocusedDay.year, prevFocusedDay.month,
prevFocusedDay.day + pageDif * 7,);
day = DateTime.utc(
prevFocusedDay.year,
prevFocusedDay.month,
prevFocusedDay.day + pageDif * 7,
);
break;
}

Expand All @@ -196,11 +204,17 @@ class CalendarCore extends StatelessWidget {
break;
case CalendarFormat.twoWeeks:
day = DateTime.utc(
firstDay.year, firstDay.month, firstDay.day + pageIndex * 14,);
firstDay.year,
firstDay.month,
firstDay.day + pageIndex * 14,
);
break;
case CalendarFormat.week:
day = DateTime.utc(
firstDay.year, firstDay.month, firstDay.day + pageIndex * 7,);
firstDay.year,
firstDay.month,
firstDay.day + pageIndex * 7,
);
break;
}

Expand Down
3 changes: 2 additions & 1 deletion lib/src/widgets/calendar_header.dart
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@ import 'package:flutter/widgets.dart';
import 'package:intl/intl.dart';

import 'package:table_calendar/src/customization/header_style.dart';
import 'package:table_calendar/src/shared/utils.dart' show CalendarFormat, DayBuilder;
import 'package:table_calendar/src/shared/utils.dart'
show CalendarFormat, DayBuilder;
import 'package:table_calendar/src/widgets/custom_icon_button.dart';
import 'package:table_calendar/src/widgets/format_button.dart';

Expand Down
18 changes: 10 additions & 8 deletions lib/src/widgets/calendar_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -84,13 +84,15 @@ class CalendarPage extends StatelessWidget {
List<TableRow> _buildCalendarDays(BuildContext context) {
final rowAmount = visibleDays.length ~/ 7;

return List.generate(rowAmount, (index) => TableRow(
decoration: rowDecoration,
children: List.generate(
7,
(id) => dayBuilder(context, visibleDays[index * 7 + id]),
),
),
);
return List.generate(
rowAmount,
(index) => TableRow(
decoration: rowDecoration,
children: List.generate(
7,
(id) => dayBuilder(context, visibleDays[index * 7 + id]),
),
),
);
}
}
58 changes: 31 additions & 27 deletions test/calendar_page_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -78,18 +78,21 @@ void main() {
testWidgets(
'Throw AssertionError when CalendarPage is built with dowVisible set to true, but dowBuilder is absent',
(tester) async {
expect(() async {
await tester.pumpWidget(
setupTestWidget(
CalendarPage(
visibleDays: visibleDays,
dayBuilder: (context, day) {
return Text('${day.day}');
},
expect(
() async {
await tester.pumpWidget(
setupTestWidget(
CalendarPage(
visibleDays: visibleDays,
dayBuilder: (context, day) {
return Text('${day.day}');
},
),
),
),
);
}, throwsAssertionError,);
);
},
throwsAssertionError,
);
},
);

Expand Down Expand Up @@ -121,28 +124,29 @@ void main() {
testWidgets(
'Week numbers are visible',
(tester) async {
await tester.pumpWidget(setupTestWidget(
CalendarPage(
visibleDays: visibleDays,
dayBuilder: (context, day) {
return Text('${day.day}');
},
dowBuilder: (context, day) {
return Text('${day.weekday}');
},
dowHeight: 5,
weekNumberVisible: true,
weekNumberBuilder: (BuildContext context, DateTime day) {
return Text(day.weekday.toString());
},
await tester.pumpWidget(
setupTestWidget(
CalendarPage(
visibleDays: visibleDays,
dayBuilder: (context, day) {
return Text('${day.day}');
},
dowBuilder: (context, day) {
return Text('${day.weekday}');
},
dowHeight: 5,
weekNumberVisible: true,
weekNumberBuilder: (BuildContext context, DateTime day) {
return Text(day.weekday.toString());
},
),
),
),);
);

expect(
find.byType(Column),
findsNWidgets(1),
);
},
);

}
Loading

0 comments on commit f23d763

Please sign in to comment.