Skip to content

Commit 546c29f

Browse files
committed
Sort study space list by length of opening hours
1 parent 64696ad commit 546c29f

File tree

1 file changed

+27
-10
lines changed

1 file changed

+27
-10
lines changed

lib/main.dart

Lines changed: 27 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -340,16 +340,33 @@ class _MyHomePageState extends State<MyHomePage> {
340340
}))
341341
.toList()
342342
: studySpaces;
343-
var filteredStudySpaces = appState.when(
344-
filterResults: () => studySpaces
345-
.where((space) => isOpenDuring(
346-
OpeningHours.range(filterStartTime, filterEndTime),
347-
space.openingHours[0]))
348-
.toList(),
349-
keywordSearch: () => queryFilteredStudySpaces,
350-
filterSearch: () => queryFilteredStudySpaces,
351-
home: () => queryFilteredStudySpaces,
352-
);
343+
var filteredStudySpaces = appState
344+
.when(
345+
filterResults: () => studySpaces
346+
.where((space) => isOpenDuring(
347+
OpeningHours.range(filterStartTime, filterEndTime),
348+
space.openingHours[0]))
349+
.toList(),
350+
keywordSearch: () => queryFilteredStudySpaces,
351+
filterSearch: () => queryFilteredStudySpaces,
352+
home: () => queryFilteredStudySpaces,
353+
)
354+
.sorted((space1, space2) => space1.openingHours[0].when(
355+
allDay: () => space2.openingHours[0].when(
356+
allDay: () => 0,
357+
range: (_start, _end) => -1,
358+
closed: () => -1),
359+
range: (TimeOfDay space1Start, TimeOfDay space1End) =>
360+
space2.openingHours[0].when(
361+
allDay: () => 1,
362+
range: (space2Start, space2End) =>
363+
timeOfDayLessThanEqual(space2End, space1End)
364+
? -1
365+
: (space2End == space1End ? 0 : 1),
366+
closed: () => -1),
367+
closed: () => space2.openingHours[0].when(
368+
allDay: () => 1, range: (_start, _end) => 1, closed: () => 0),
369+
));
353370
return Scaffold(
354371
appBar: appState.when(
355372
filterSearch: () => filterResultsAppBar(),

0 commit comments

Comments
 (0)