From 06fa41eb45b08eaa9c2215503a7fb9b520e58cee Mon Sep 17 00:00:00 2001
From: Sara <sarasdj@stud.ntnu.no>
Date: Tue, 4 Jun 2024 17:49:45 +0200
Subject: [PATCH] fix: start of fixing search bug

---
 app/lib/pages/default_page.dart         | 13 ++++++-------
 app/lib/server_requests/init_state.dart |  8 ++++----
 app/lib/widgets/choropleth_map.dart     |  6 ++++--
 3 files changed, 14 insertions(+), 13 deletions(-)

diff --git a/app/lib/pages/default_page.dart b/app/lib/pages/default_page.dart
index 98025185..62583d7c 100644
--- a/app/lib/pages/default_page.dart
+++ b/app/lib/pages/default_page.dart
@@ -62,15 +62,14 @@ class _DefaultPageState extends State<DefaultPage> {
                   context: context,
                   delegate: CustomSearchDelegate((String result) {
                     // Make request only if the selected lake is different from the current selected lake
-                    if (result != selectedLake) {
-                      setState(() {
-                        //selectedLake = result;
-                        initialiseState(false);
-                      });
+                    //if (result != selectedLake) {
                       Future.microtask(() async { // Reinitialise state with new lake data
-                        selectedLake = result;
+                        await initialiseState(false);
+                        setState(() {
+                          selectedLake = result;
+                        });
                       });
-                    }
+                    //}
                   }),
                 );
               },
diff --git a/app/lib/server_requests/init_state.dart b/app/lib/server_requests/init_state.dart
index 2bc74979..e53957c1 100644
--- a/app/lib/server_requests/init_state.dart
+++ b/app/lib/server_requests/init_state.dart
@@ -26,7 +26,7 @@ Future<void> initialiseState(bool initNewLake) async {
       List<Measurement> measurements = fetchResult.measurements;
       selectedMeasurements = measurements;
 
-      // Extract all _subdivisions from list of measurements
+      // Extract all subdivisions from list of measurements
       for (Measurement measurement in measurements) {
         for (SubDiv subdivision in measurement.subDivs) {
           selectedSubdivisions.add(subdivision);
@@ -35,10 +35,9 @@ Future<void> initialiseState(bool initNewLake) async {
 
       // Sort the list of SubDiv objects based on each subdivision id
       selectedSubdivisions.sort((a, b) => a.sub_div_id.compareTo(b.sub_div_id));
-
-      print("Loaded from files: Meas.len: ${selectedMeasurements.length}, rel.len: ${selectedRelation.length}");
-
     } else { // Try to fetch measurement data from server
+      selectedSubdivisions.clear(); // Reset subdivision list
+
       markerListFuture = fetchMeasurements().then((fetchResult) {
         List<Measurement> measurements = fetchResult.measurements;
         selectedMeasurements = measurements;
@@ -47,6 +46,7 @@ Future<void> initialiseState(bool initNewLake) async {
         for (Measurement measurement in measurements) {
           for (SubDiv subdivision in measurement.subDivs) {
             selectedSubdivisions.add(subdivision);
+            print("Added subdivision");
           }
         }
 
diff --git a/app/lib/widgets/choropleth_map.dart b/app/lib/widgets/choropleth_map.dart
index 2cf8053e..f0b62d2d 100644
--- a/app/lib/widgets/choropleth_map.dart
+++ b/app/lib/widgets/choropleth_map.dart
@@ -33,13 +33,15 @@ class ChoroplethMapState extends State<ChoroplethMap> {
   late final MapZoomPanBehavior _zoomPanBehavior = MapZoomPanBehavior();
 
   void updateDataSource() {
-    _initDataSource();
+    setState(() {
+      selectedIndex = -1;
+      _initDataSource();
+    });
   }
 
   @override
   void initState() {
     super.initState();
-      selectedIndex = 0;
       _initDataSource();
     }
 
-- 
GitLab