Skip to content

Commit 65c5347

Browse files
authored
Merge pull request #10 from babakcode/channel
local search rooms
2 parents eff5375 + c7359ae commit 65c5347

File tree

3 files changed

+35
-5
lines changed

3 files changed

+35
-5
lines changed

lib/providers/chat_provider.dart

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ class ChatProvider extends ChangeNotifier {
3535
/// auth provider proxy
3636
Auth? auth;
3737

38+
3839
void initAuth(Auth auth) => this.auth = auth;
3940

4041
Future saveLastViewPortSeenIndex(Room selectedRoom) async {
@@ -1089,4 +1090,22 @@ class ChatProvider extends ChangeNotifier {
10891090
Utils.showSnack(navigatorKey.currentContext!, data['msg']);
10901091
}
10911092
}
1093+
1094+
bool showSearchRoomsBox = false;
1095+
1096+
List<Room>? roomsFromSearch;
1097+
1098+
checkSearchMode() {
1099+
showSearchRoomsBox = !showSearchRoomsBox;
1100+
notifyListeners();
1101+
}
1102+
1103+
void findRooms(String content) {
1104+
if(content.isEmpty){
1105+
roomsFromSearch = null;
1106+
}else{
1107+
roomsFromSearch = rooms.where((element) => element.roomName == content).toList();
1108+
}
1109+
notifyListeners();
1110+
}
10921111
}

lib/ui/pages/chat/chat_bottom_nav.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ class _ChatBottomNavComponentState extends State<ChatBottomNavComponent> {
7171
chatProvider, globalSetting, _width),
7272

7373
/// for search `@users`
74-
_atSignSection(chatProvider),
74+
//_atSignSection(chatProvider),
7575

7676
/// for replay chat
7777
_replyOffStateSection(chatProvider),

lib/ui/pages/home/home_rooms.dart

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import 'package:chat_babakcode/ui/pages/qr_code/qr_scanner.dart';
1010
import 'package:chat_babakcode/ui/pages/search/search_user_page.dart';
1111
import 'package:chat_babakcode/ui/pages/security/security_page.dart';
1212
import 'package:chat_babakcode/ui/widgets/app_text.dart';
13+
import 'package:chat_babakcode/ui/widgets/app_text_field.dart';
1314
import 'package:flutter/cupertino.dart';
1415
import 'package:flutter/material.dart';
1516
import 'package:flutter_svg/svg.dart';
@@ -55,7 +56,15 @@ class _HomeRoomsComponentState extends State<HomeRoomsComponent> {
5556
slivers: [
5657
SliverAppBar(
5758
pinned: true,
58-
title: Text(chatProvider.connectionStatus ?? 'Chats'),
59+
60+
title: !chatProvider.showSearchRoomsBox?Text(chatProvider.connectionStatus ?? 'Chats') : TextField(
61+
onChanged: (value) {
62+
chatProvider.findRooms(value);
63+
},
64+
decoration: const InputDecoration(
65+
hintText: 'Room name'
66+
),
67+
),
5968
leading: _width < 960
6069
? IconButton(
6170
tooltip: 'open navigation menu',
@@ -67,7 +76,9 @@ class _HomeRoomsComponentState extends State<HomeRoomsComponent> {
6776
IconButton(
6877
onPressed: () => {
6978
/*showSearchUsersByToken(context)*/
70-
NotificationController.createNewNotification()
79+
//NotificationController.createNewNotification()
80+
81+
chatProvider.checkSearchMode()
7182
},
7283
icon: const Icon(Icons.search_rounded),
7384
),
@@ -123,7 +134,7 @@ class _HomeRoomsComponentState extends State<HomeRoomsComponent> {
123134
sliver: SliverList(
124135
delegate: SliverChildBuilderDelegate(
125136
(context, index) {
126-
Room room = chatProvider.rooms[index];
137+
Room room = chatProvider.roomsFromSearch != null ? chatProvider.roomsFromSearch![index] : chatProvider.rooms[index];
127138
Room.populateRoomFields(room, chatProvider.auth!.myUser!);
128139

129140
return Padding(
@@ -161,7 +172,7 @@ class _HomeRoomsComponentState extends State<HomeRoomsComponent> {
161172
),
162173
);
163174
},
164-
childCount: chatProvider.rooms.length,
175+
childCount: chatProvider.roomsFromSearch != null ? chatProvider.roomsFromSearch!.length :chatProvider.rooms.length,
165176
),
166177
),
167178
),

0 commit comments

Comments
 (0)