Skip to content

Commit 9badc8d

Browse files
committed
refactor: made the changes
1 parent 89ef8cb commit 9badc8d

File tree

3 files changed

+61
-54
lines changed

3 files changed

+61
-54
lines changed

lib/controllers/rooms_controller.dart

Lines changed: 13 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import 'package:get/get.dart';
88
import 'package:loading_animation_widget/loading_animation_widget.dart';
99
import 'package:resonate/controllers/tabview_controller.dart';
1010
import 'package:resonate/models/appwrite_room.dart';
11-
import 'package:resonate/models/appwrite_upcomming_room.dart';
1211
import 'package:resonate/services/appwrite_service.dart';
1312
import 'package:resonate/services/room_service.dart';
1413
import 'package:resonate/themes/theme_controller.dart';
@@ -27,8 +26,6 @@ class RoomsController extends GetxController {
2726
RxBool isSearching = false.obs;
2827
RxBool searchBarIsEmpty = true.obs;
2928
RxList<AppwriteRoom> filteredRooms = <AppwriteRoom>[].obs;
30-
RxList<AppwriteUpcommingRoom> filteredUpcomingRooms =
31-
<AppwriteUpcommingRoom>[].obs;
3229

3330
@override
3431
void onInit() async {
@@ -151,52 +148,29 @@ class RoomsController extends GetxController {
151148
}
152149
}
153150

154-
Future<void> searchRooms(
155-
String query, {
156-
bool isLiveRooms = true,
157-
List<AppwriteUpcommingRoom>? upcomingRooms,
158-
}) async {
151+
Future<void> searchLiveRooms(String query) async {
159152
if (query.isEmpty) {
160-
if (isLiveRooms) {
161-
filteredRooms.value = rooms;
162-
searchBarIsEmpty.value = true;
163-
} else {
164-
filteredUpcomingRooms.value = upcomingRooms ?? [];
165-
}
153+
filteredRooms.value = rooms;
154+
searchBarIsEmpty.value = true;
166155
return;
167156
}
168-
if (isLiveRooms) {
169-
isSearching.value = true;
170-
searchBarIsEmpty.value = false;
171-
}
157+
isSearching.value = true;
158+
searchBarIsEmpty.value = false;
172159
try {
173160
final lowerQuery = query.toLowerCase();
174-
if (isLiveRooms) {
175-
filteredRooms.value = rooms.where((room) {
176-
return room.name.toLowerCase().contains(lowerQuery) ||
177-
room.description.toLowerCase().contains(lowerQuery);
178-
}).toList();
179-
} else {
180-
filteredUpcomingRooms.value = (upcomingRooms ?? []).where((room) {
181-
return room.name.toLowerCase().contains(lowerQuery) ||
182-
room.description.toLowerCase().contains(lowerQuery);
183-
}).toList();
184-
}
161+
filteredRooms.value = rooms.where((room) {
162+
return room.name.toLowerCase().contains(lowerQuery) ||
163+
room.description.toLowerCase().contains(lowerQuery);
164+
}).toList();
185165
} catch (e) {
186-
log('Error searching ${isLiveRooms ? 'rooms' : 'upcoming rooms'}: $e');
187-
if (isLiveRooms) {
188-
filteredRooms.value = [];
189-
} else {
190-
filteredUpcomingRooms.value = [];
191-
}
166+
log('Error searching rooms: $e');
167+
filteredRooms.value = [];
192168
} finally {
193-
if (isLiveRooms) {
194-
isSearching.value = false;
195-
}
169+
isSearching.value = false;
196170
}
197171
}
198172

199-
void clearSearch() {
173+
void clearLiveSearch() {
200174
filteredRooms.value = rooms;
201175
searchBarIsEmpty.value = true;
202176
}

lib/controllers/upcomming_rooms_controller.dart

Lines changed: 32 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,9 @@ class UpcomingRoomsController extends GetxController {
3636
late String localTimeZoneName;
3737
late bool isOffsetNegetive;
3838
Rx<bool> isLoading = false.obs;
39+
RxBool searchBarIsEmpty = true.obs;
40+
RxList<AppwriteUpcommingRoom> filteredUpcomingRooms =
41+
<AppwriteUpcommingRoom>[].obs;
3942
late DateTime currentTimeInstance;
4043
final Map<String, String> monthMap = {
4144
"1": "Jan",
@@ -185,6 +188,9 @@ class UpcomingRoomsController extends GetxController {
185188
await fetchUpcomingRoomDetails(upcomingRoom);
186189
upcomingRooms.add(appwriteUpcomingRoom);
187190
}
191+
if (searchBarIsEmpty.value) {
192+
filteredUpcomingRooms.value = upcomingRooms;
193+
}
188194
} catch (e) {
189195
log(e.toString());
190196
} finally {
@@ -205,8 +211,6 @@ class UpcomingRoomsController extends GetxController {
205211

206212
// Delete UpcomingRoom as it is now a room
207213
await deleteUpcomingRoom(upcomingRoomId);
208-
209-
await getUpcomingRooms();
210214
}
211215

212216
Future<void> createUpcomingRoom() async {
@@ -346,4 +350,30 @@ class UpcomingRoomsController extends GetxController {
346350
isDismissible: false,
347351
);
348352
}
353+
354+
Future<void> searchUpcomingRooms(String query) async {
355+
if (query.isEmpty) {
356+
filteredUpcomingRooms.value = upcomingRooms;
357+
searchBarIsEmpty.value = true;
358+
return;
359+
}
360+
361+
searchBarIsEmpty.value = false;
362+
363+
try {
364+
final lowerQuery = query.toLowerCase();
365+
filteredUpcomingRooms.value = upcomingRooms.where((room) {
366+
return room.name.toLowerCase().contains(lowerQuery) ||
367+
room.description.toLowerCase().contains(lowerQuery);
368+
}).toList();
369+
} catch (e) {
370+
log('Error searching upcoming rooms: $e');
371+
filteredUpcomingRooms.value = [];
372+
}
373+
}
374+
375+
void clearUpcomingSearch() {
376+
filteredUpcomingRooms.value = upcomingRooms;
377+
searchBarIsEmpty.value = true;
378+
}
349379
}

lib/views/screens/home_screen.dart

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,8 @@ class _HomeScreenState extends State<HomeScreen> {
5252
isLiveSelected = selectedTab;
5353
_showSearchOverlay = false;
5454
});
55-
roomsController.clearSearch();
55+
roomsController.clearLiveSearch();
56+
upcomingRoomsController.clearUpcomingSearch();
5657
},
5758
onSearchTapped: () {
5859
setState(() {
@@ -95,19 +96,21 @@ class _HomeScreenState extends State<HomeScreen> {
9596
SearchOverlay(
9697
isVisible: _showSearchOverlay,
9798
onSearchChanged: (query) {
98-
roomsController.searchRooms(
99-
query,
100-
isLiveRooms: isLiveSelected,
101-
upcomingRooms: isLiveSelected
102-
? null
103-
: upcomingRoomsController.upcomingRooms,
104-
);
99+
if (isLiveSelected) {
100+
roomsController.searchLiveRooms(query);
101+
} else {
102+
upcomingRoomsController.searchUpcomingRooms(query);
103+
}
105104
},
106105
onClose: () {
107106
setState(() {
108107
_showSearchOverlay = false;
109108
});
110-
roomsController.clearSearch();
109+
if (isLiveSelected) {
110+
roomsController.clearLiveSearch();
111+
} else {
112+
upcomingRoomsController.clearUpcomingSearch();
113+
}
111114
},
112115
isSearching: isLiveSelected
113116
? roomsController.isSearching.value
@@ -185,9 +188,9 @@ class UpcomingRoomsListView extends StatelessWidget {
185188
Widget build(BuildContext context) {
186189
return Obx(() {
187190
final roomsToShow =
188-
roomsController.filteredUpcomingRooms.isNotEmpty ||
189-
!roomsController.searchBarIsEmpty.value
190-
? roomsController.filteredUpcomingRooms
191+
upcomingRoomsController.filteredUpcomingRooms.isNotEmpty ||
192+
!upcomingRoomsController.searchBarIsEmpty.value
193+
? upcomingRoomsController.filteredUpcomingRooms
191194
: upcomingRoomsController.upcomingRooms;
192195

193196
if (roomsToShow.isNotEmpty) {
@@ -205,7 +208,7 @@ class UpcomingRoomsListView extends StatelessWidget {
205208
);
206209
} else {
207210
return upcomingRoomsController.upcomingRooms.isEmpty &&
208-
roomsController.searchBarIsEmpty.value
211+
upcomingRoomsController.searchBarIsEmpty.value
209212
? const NoRoomScreen(isRoom: false)
210213
: Center(
211214
child: Column(

0 commit comments

Comments
 (0)