buildRows method

List<Widget> buildRows (BuildContext context)

Implementation

List<Widget> buildRows(BuildContext context) {
  List<Widget> rows = [];
  rows.add(weekdayLabelsRow);

  DateTime rowLastDayDate = pageStartDate.add(Duration(days: 6 - startDayOffset));

  if (pageEndDate.isAfter(rowLastDayDate)) {
    rows.add(Row(
        children: buildCalendarRow(context, pageStartDate, rowLastDayDate))
    );

    for (var i = 1; i < MAX_ROWS_COUNT; i++) {
      DateTime nextRowFirstDayDate = pageStartDate.add(
          Duration(days: 7 * i - startDayOffset));

      if (nextRowFirstDayDate.isAfter(pageEndDate)) {
        break;
      }

      DateTime nextRowLastDayDate = pageStartDate.add(
          Duration(days: 7 * i - startDayOffset + 6));

      if (nextRowLastDayDate.isAfter(pageEndDate)) {
        nextRowLastDayDate = pageEndDate;
      }

      rows.add(Row(
          children: buildCalendarRow(
              context, nextRowFirstDayDate, nextRowLastDayDate)));
    }
  } else {
    rows.add(Row(
        children: buildCalendarRow(context, pageStartDate, pageEndDate))
    );
  }

  return rows;
}