@@ -340,16 +340,33 @@ class _MyHomePageState extends State<MyHomePage> {
340
340
}))
341
341
.toList ()
342
342
: 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
+ ));
353
370
return Scaffold (
354
371
appBar: appState.when (
355
372
filterSearch: () => filterResultsAppBar (),
0 commit comments