Skip to content
Snippets Groups Projects
Commit ba813665 authored by Harshil Patel's avatar Harshil Patel
Browse files

"Implemented minimal serach bar for product search"

parent e8636591
No related branches found
No related tags found
1 merge request!3Main product
......@@ -6,12 +6,14 @@ import 'package:food_app/models/product_model.dart';
class ProductProvider with ChangeNotifier {
ProductModel productModel;
List<ProductModel> search = [];
productModels(QueryDocumentSnapshot element) {
productModel = ProductModel(
productImage: element.get("productImage"),
productName: element.get("productName"),
productPrice: element.get("productPrice"),
);
search.add(productModel);
}
// Display Herbs Drawer
......@@ -81,4 +83,11 @@ class ProductProvider with ChangeNotifier {
List<ProductModel> get getRootProductDataList {
return rootProductList;
}
// Search Return
List<ProductModel> get getAllProductSearch {
return search;
}
}
......@@ -224,7 +224,9 @@ class _HomeScreenState extends State<HomeScreen> {
onPressed: () {
Navigator.of(context).push(
MaterialPageRoute(
builder: (context) => Search(),
builder: (context) => Search(
search: productProvider.getAllProductSearch,
),
),
);
},
......
import 'package:flutter/material.dart';
import 'package:food_app/config/colors.dart';
import 'package:food_app/models/product_model.dart';
import 'package:food_app/widgets/single_item.dart';
......@@ -12,10 +13,20 @@ class Search extends StatefulWidget {
}
class _SearchState extends State<Search> {
String query = "";
SigninCharacter _character = SigninCharacter.alphabetically;
searchItem(String query) {
List<ProductModel> searhFood = widget.search.where((element) {
return element.productName.toLowerCase().contains(query);
}).toList();
return searhFood;
}
@override
Widget build(BuildContext context) {
List<ProductModel> _searchItem = searchItem(query);
void bottomShet() => showModalBottomSheet(
context: context,
shape: RoundedRectangleBorder(
......@@ -55,15 +66,28 @@ class _SearchState extends State<Search> {
Navigator.of(context).pop();
}),
RadioListTile(
value: SigninCharacter.alphabetically,
groupValue: _character,
title: Text("Price - Alphabetically"),
onChanged: (vav) {
setState(() {
_character = vav;
});
Navigator.of(context).pop();
}),
value: SigninCharacter.alphabetically,
groupValue: _character,
title: Text("Price - Alphabetically"),
onChanged: (vav) {
setState(() {
_character = vav;
});
Navigator.of(context).pop();
},
),
Container(
height: 46,
margin: EdgeInsets.symmetric(vertical: 20, horizontal: 20),
width: double.infinity,
child: MaterialButton(
child: Text("Submit"),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(30)),
color: primaryColor,
onPressed: () {},
),
)
],
);
});
......@@ -86,6 +110,11 @@ class _SearchState extends State<Search> {
height: 52,
margin: EdgeInsets.symmetric(horizontal: 20),
child: TextField(
onChanged: (value) {
setState(() {
query = value;
});
},
decoration: InputDecoration(
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(30),
......@@ -102,7 +131,7 @@ class _SearchState extends State<Search> {
height: 10,
),
Column(
children: widget.search.map((data) {
children: _searchItem.map((data) {
return SingleItem(
isBool: false,
productImage: data.productImage,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment