Added Station Filter without function and refactored

This commit is contained in:
2025-01-27 16:27:25 +01:00
parent 81f5924df5
commit 4765342ad1
5 changed files with 54 additions and 9 deletions

View File

@@ -1,7 +1,7 @@
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import '../Widgets/reading_graph.dart';
import '../widgets/reading_graph.dart';
import '../model/flood_station.dart';
import '../model/reading.dart';
import '../services/api.dart';

View File

@@ -1,8 +1,9 @@
import 'package:flutter/material.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 '../widgets/station_filter.dart';
import 'flood_station_page.dart';
class LandingPage extends StatefulWidget {
@@ -16,7 +17,6 @@ class LandingPage extends StatefulWidget {
class _LandingPageState extends State<LandingPage> {
late FloodStationProvider floodStationProvider;
@override
initState() {
super.initState();
@@ -28,12 +28,21 @@ class _LandingPageState extends State<LandingPage> {
Widget build(BuildContext context) {
floodStationProvider = context.watch<FloodStationProvider>();
return Scaffold(
body: FloodStationListView(
stations: floodStationProvider.allStations,
onItemTapped: (station) {
floodStationProvider.selectedStation = station;
Navigator.of(context).pushNamed(FloodStationPage.routeName);
},
body: Column(
children: [
StationFilter(
onEditingComplete: (filterText) {},
),
Expanded(
child: FloodStationListView(
stations: floodStationProvider.allStations,
onItemTapped: (station) {
floodStationProvider.selectedStation = station;
Navigator.of(context).pushNamed(FloodStationPage.routeName);
},
),
),
],
),
);
}

View 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),
);
}
}