Added Station Filter without function and refactored
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
|
|
||||||
import '../Widgets/reading_graph.dart';
|
import '../widgets/reading_graph.dart';
|
||||||
import '../model/flood_station.dart';
|
import '../model/flood_station.dart';
|
||||||
import '../model/reading.dart';
|
import '../model/reading.dart';
|
||||||
import '../services/api.dart';
|
import '../services/api.dart';
|
||||||
|
|||||||
@@ -1,8 +1,9 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
|
|
||||||
import '../Widgets/flood_station_list_view.dart';
|
import '../widgets/flood_station_list_view.dart';
|
||||||
import '../services/flood_station_provider.dart';
|
import '../services/flood_station_provider.dart';
|
||||||
|
import '../widgets/station_filter.dart';
|
||||||
import 'flood_station_page.dart';
|
import 'flood_station_page.dart';
|
||||||
|
|
||||||
class LandingPage extends StatefulWidget {
|
class LandingPage extends StatefulWidget {
|
||||||
@@ -16,7 +17,6 @@ class LandingPage extends StatefulWidget {
|
|||||||
|
|
||||||
class _LandingPageState extends State<LandingPage> {
|
class _LandingPageState extends State<LandingPage> {
|
||||||
late FloodStationProvider floodStationProvider;
|
late FloodStationProvider floodStationProvider;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
initState() {
|
initState() {
|
||||||
super.initState();
|
super.initState();
|
||||||
@@ -28,12 +28,21 @@ class _LandingPageState extends State<LandingPage> {
|
|||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
floodStationProvider = context.watch<FloodStationProvider>();
|
floodStationProvider = context.watch<FloodStationProvider>();
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
body: FloodStationListView(
|
body: Column(
|
||||||
stations: floodStationProvider.allStations,
|
children: [
|
||||||
onItemTapped: (station) {
|
StationFilter(
|
||||||
floodStationProvider.selectedStation = station;
|
onEditingComplete: (filterText) {},
|
||||||
Navigator.of(context).pushNamed(FloodStationPage.routeName);
|
),
|
||||||
},
|
Expanded(
|
||||||
|
child: FloodStationListView(
|
||||||
|
stations: floodStationProvider.allStations,
|
||||||
|
onItemTapped: (station) {
|
||||||
|
floodStationProvider.selectedStation = station;
|
||||||
|
Navigator.of(context).pushNamed(FloodStationPage.routeName);
|
||||||
|
},
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
36
lib/widgets/station_filter.dart
Normal file
36
lib/widgets/station_filter.dart
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
|
class StationFilter extends StatefulWidget {
|
||||||
|
const StationFilter({super.key, required this.onEditingComplete});
|
||||||
|
final void Function(String filterText) onEditingComplete;
|
||||||
|
|
||||||
|
@override
|
||||||
|
State<StationFilter> createState() => StationFilterState();
|
||||||
|
}
|
||||||
|
|
||||||
|
class StationFilterState extends State<StationFilter> {
|
||||||
|
TextEditingController filterController = TextEditingController();
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return TextField(
|
||||||
|
controller: filterController,
|
||||||
|
decoration: InputDecoration(
|
||||||
|
prefixIcon: Icon(Icons.search),
|
||||||
|
suffixIcon: Opacity(
|
||||||
|
opacity: filterController.text.isEmpty ? 0 : 1,
|
||||||
|
child: IconButton(
|
||||||
|
onPressed: () {
|
||||||
|
filterController.clear();
|
||||||
|
setState(() {});
|
||||||
|
},
|
||||||
|
icon: Icon(Icons.delete),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
label: Text('Filter'),
|
||||||
|
),
|
||||||
|
onChanged: (_) => setState(() {}),
|
||||||
|
onEditingComplete: () => widget.onEditingComplete(filterController.text),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user