extract searchTextField into a separate widget

This commit is contained in:
xsahil03x
2020-11-25 16:43:35 +05:30
parent 850657cc63
commit cd84555f74
2 changed files with 84 additions and 32 deletions
+3 -32
View File
@@ -4,6 +4,7 @@ import 'package:flutter/material.dart';
import 'package:stream_chat_flutter/stream_chat_flutter.dart';
import 'group_chat_details_screen.dart';
import 'search_text_field.dart';
class NewGroupChatScreen extends StatefulWidget {
@override
@@ -98,38 +99,8 @@ class _NewGroupChatScreenState extends State<NewGroupChatScreen> {
],
),
SliverToBoxAdapter(
child: Container(
height: 36,
decoration: BoxDecoration(
color: Colors.white,
border: Border.all(
color: Colors.grey.shade300,
),
borderRadius: BorderRadius.circular(24),
),
margin: const EdgeInsets.symmetric(
vertical: 8,
horizontal: 8,
),
child: TextField(
controller: _controller,
decoration: InputDecoration(
prefixIcon: StreamSvgIcon.search(
color: Colors.black,
size: 24,
),
hintText: 'Search',
hintStyle: TextStyle(
color: Colors.black.withOpacity(0.5),
fontSize: 14,
),
contentPadding: const EdgeInsets.all(0),
border: OutlineInputBorder(
borderSide: BorderSide.none,
borderRadius: BorderRadius.circular(24),
),
),
),
child: SearchTextField(
controller: _controller,
),
),
if (_selectedUsers.isNotEmpty)
+81
View File
@@ -0,0 +1,81 @@
import 'package:flutter/material.dart';
import 'package:stream_chat_flutter/stream_chat_flutter.dart';
class SearchTextField extends StatelessWidget {
final TextEditingController controller;
final ValueChanged<String> onChanged;
final String hintText;
final VoidCallback onTap;
const SearchTextField({
Key key,
@required this.controller,
this.onChanged,
this.onTap,
this.hintText = 'Search',
}) : super(key: key);
@override
Widget build(BuildContext context) {
return Container(
height: 36,
decoration: BoxDecoration(
color: Colors.white,
border: Border.all(
color: Colors.grey.shade300,
),
borderRadius: BorderRadius.circular(24),
),
margin: const EdgeInsets.symmetric(
vertical: 8,
horizontal: 8,
),
child: Row(
children: [
Expanded(
child: TextField(
onTap: onTap,
controller: controller,
onChanged: onChanged,
decoration: InputDecoration(
prefixIcon: StreamSvgIcon.search(
color: Colors.black,
size: 24,
),
hintText: hintText,
hintStyle: TextStyle(
color: Colors.black.withOpacity(0.5),
fontSize: 14,
),
contentPadding: const EdgeInsets.all(0),
border: OutlineInputBorder(
borderSide: BorderSide.none,
borderRadius: BorderRadius.circular(24),
),
),
),
),
// Material(
//
// child: IconButton(
// icon: StreamSvgIcon.close(
// color: Colors.grey,
// ),
// splashRadius: 24,
// onPressed: () {
// if (controller.text.isNotEmpty) {
// Future.microtask(
// () => [
// controller.clear(),
// onChanged(''),
// ],
// );
// }
// },
// ),
// ),
],
),
);
}
}