refactored code to encapsulate date formatting
This commit is contained in:
@@ -20,36 +20,22 @@ class MapPage extends StatefulWidget {
|
||||
}
|
||||
|
||||
class _MapPageState extends State<MapPage> {
|
||||
final _mapController = MapController();
|
||||
final mapController = MapController();
|
||||
late FloodStationProvider _floodStationProvider;
|
||||
bool _loading = false;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
_floodStationProvider = context.watch<FloodStationProvider>();
|
||||
if (_loading == true) {
|
||||
return Center(
|
||||
child: CircularProgressIndicator(),
|
||||
);
|
||||
} else if (_floodStationProvider.allStations.isEmpty) {
|
||||
if (_floodStationProvider.allStations.isEmpty) {
|
||||
return Center(
|
||||
child: ElevatedButton(
|
||||
onPressed: () {
|
||||
setState(() {
|
||||
_loading = true;
|
||||
});
|
||||
_floodStationProvider
|
||||
.loadAllStations()
|
||||
.whenComplete(() => setState(() {
|
||||
_loading = false;
|
||||
}));
|
||||
},
|
||||
onPressed: _floodStationProvider.loadAllStations,
|
||||
child: Text('Load Map'),
|
||||
),
|
||||
);
|
||||
}
|
||||
return FlutterMap(
|
||||
mapController: _mapController,
|
||||
mapController: mapController,
|
||||
options: MapOptions(
|
||||
cameraConstraint: CameraConstraint.containCenter(
|
||||
bounds: LatLngBounds.fromPoints(_floodStationProvider.allStations
|
||||
@@ -70,14 +56,13 @@ class _MapPageState extends State<MapPage> {
|
||||
padding: EdgeInsets.all(50),
|
||||
maxZoom: 15,
|
||||
markers: _stationsAsMarkers(_floodStationProvider.allStations),
|
||||
builder: _clusterMarkerBuilder),
|
||||
builder: _markerBuilder),
|
||||
)
|
||||
],
|
||||
);
|
||||
}
|
||||
|
||||
// builds the clustered marker
|
||||
Widget _clusterMarkerBuilder(BuildContext context, List<Marker> markers) {
|
||||
Widget _markerBuilder(BuildContext context, List<Marker> markers) {
|
||||
return Container(
|
||||
decoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.circular(20),
|
||||
@@ -86,7 +71,7 @@ class _MapPageState extends State<MapPage> {
|
||||
child: Center(
|
||||
child: Text(
|
||||
markers.length.toString(),
|
||||
style: TextStyle(color: Theme.of(context).colorScheme.onTertiary),
|
||||
style: const TextStyle(color: Colors.white),
|
||||
),
|
||||
),
|
||||
);
|
||||
@@ -107,7 +92,7 @@ class _MapPageState extends State<MapPage> {
|
||||
.toList();
|
||||
}
|
||||
|
||||
void _markerTapped(FloodStation station) {
|
||||
_markerTapped(FloodStation station) {
|
||||
showDialog(
|
||||
context: context,
|
||||
builder: (context) => MapPopup(
|
||||
|
||||
Reference in New Issue
Block a user