added comments and refactored code

This commit is contained in:
2025-01-28 22:36:23 +01:00
parent 6828a9a14b
commit 8f5ed07be9
12 changed files with 83 additions and 58 deletions

View File

@@ -17,7 +17,7 @@ class LandingPage extends StatefulWidget {
// uses mixin OverlayService to show loading overlay
class _LandingPageState extends State<LandingPage> with OverlayService {
late FloodStationProvider floodStationProvider;
late FloodStationProvider _floodStationProvider;
@override
void dispose() {
@@ -27,7 +27,7 @@ class _LandingPageState extends State<LandingPage> with OverlayService {
@override
Widget build(BuildContext context) {
floodStationProvider = context.watch<FloodStationProvider>();
_floodStationProvider = context.watch<FloodStationProvider>();
return Column(
children: [
StationFilter(
@@ -54,9 +54,9 @@ class _LandingPageState extends State<LandingPage> with OverlayService {
return Expanded(
child: FloodStationListView(
stations: floodStationProvider.filtered
? floodStationProvider.filteredStations
: floodStationProvider.allStations,
stations: _floodStationProvider.filtered
? _floodStationProvider.filteredStations
: _floodStationProvider.allStations,
onItemTapped: _navigateToStationDetail,
),
);
@@ -64,7 +64,7 @@ class _LandingPageState extends State<LandingPage> with OverlayService {
void _handleFilterChange(String filterText) {
if (filterText.isEmpty) {
floodStationProvider.filtered = false;
_floodStationProvider.filtered = false;
setState(() {});
return;
}
@@ -73,14 +73,14 @@ class _LandingPageState extends State<LandingPage> with OverlayService {
context: context,
message: 'Loading',
onDismiss: () {
floodStationProvider.cancelFilterLoading();
_floodStationProvider.cancelFilterLoading();
},
);
floodStationProvider.loadFilteredStations(filterText);
floodStationProvider.filteredStationsFuture
_floodStationProvider.loadFilteredStations(filterText);
_floodStationProvider.filteredStationsFuture
?.then((_) => removeLoadingNotifier());
floodStationProvider.filtered = true;
_floodStationProvider.filtered = true;
}
void _handleLoadAllStations() {
@@ -88,27 +88,27 @@ class _LandingPageState extends State<LandingPage> with OverlayService {
context: context,
message: 'Loading',
onDismiss: () {
floodStationProvider.cancelFilterLoading();
_floodStationProvider.cancelFilterLoading();
},
);
floodStationProvider
_floodStationProvider
.loadAllStations()
.whenComplete(() => removeLoadingNotifier());
}
void _navigateToStationDetail(FloodStation station) {
floodStationProvider.selectedStation = station;
_floodStationProvider.selectedStation = station;
Navigator.of(context).pushNamed(FloodStationPage.routeName);
}
// returns boolean to decide whether the list of stations should be shown
// if the list of stations is empty and is not filtered either, the function returns false
bool get _shouldShowList {
if (!floodStationProvider.filtered &&
floodStationProvider.allStations.isNotEmpty) {
if (!_floodStationProvider.filtered &&
_floodStationProvider.allStations.isNotEmpty) {
return true;
}
return floodStationProvider.filtered;
return _floodStationProvider.filtered;
}
}