import 'package:flutter/material.dart'; import 'package:kulinar_app/constants.dart'; import 'package:kulinar_app/models/recipe_class.dart'; import 'package:kulinar_app/widgets/recipe_card_widget.dart'; import 'package:kulinar_app/models/data/recipe_data_class.dart'; class RecipeSearch extends SearchDelegate { @override List buildActions(BuildContext context) { return [ IconButton( icon: Icon(Icons.clear), onPressed: () { query = ""; }, ), ]; } @override Widget buildLeading(BuildContext context) { return IconButton( icon: Icon(Icons.arrow_back, color: cIconColor), onPressed: () { close(context, null); }, ); } @override Widget buildResults(BuildContext context) { List _filteredRecipeList = RecipeData.recipeList.where((element) => element.title!.toLowerCase().contains(query.toLowerCase())).toList(); return ListView.builder( itemCount: _filteredRecipeList.length, itemBuilder: (context, index) => RecipeCard(inSearch: true, recipe: _filteredRecipeList[index]), ); } @override Widget buildSuggestions(BuildContext context) { List _filteredRecipeList = RecipeData.recipeList.where((element) => element.title!.toLowerCase().contains(query.toLowerCase())).toList(); return ListView.builder( itemCount: _filteredRecipeList.length, itemBuilder: (context, index) => RecipeCard(inSearch: true, recipe: _filteredRecipeList[index]), ); } @override ThemeData appBarTheme(BuildContext context) { return Theme.of(context).copyWith( textTheme: TextTheme( headline6: cSearchTextStyle, ), ); } } class FavoriteRecipeSearch extends SearchDelegate { @override List buildActions(BuildContext context) { return [ IconButton( icon: Icon(Icons.clear), onPressed: () { query = ""; }, ), ]; } @override Widget buildLeading(BuildContext context) { return IconButton( icon: Icon(Icons.arrow_back, color: cIconColor), onPressed: () { close(context, null); }, ); } @override Widget buildResults(BuildContext context) { List _filteredRecipeList = RecipeData.recipeList.where((element) => element.title!.toLowerCase().contains(query.toLowerCase()) && element.favorite).toList(); return ListView.builder( itemCount: _filteredRecipeList.length, itemBuilder: (context, index) => RecipeCard(inSearch: true, recipe: _filteredRecipeList[index]), ); } @override Widget buildSuggestions(BuildContext context) { List _filteredRecipeList = RecipeData.recipeList.where((element) => element.title!.toLowerCase().contains(query.toLowerCase()) && element.favorite).toList(); return ListView.builder( itemCount: _filteredRecipeList.length, itemBuilder: (context, index) => RecipeCard(inSearch: true, recipe: _filteredRecipeList[index]), ); } @override ThemeData appBarTheme(BuildContext context) { return Theme.of(context).copyWith( textTheme: TextTheme( headline6: cSearchTextStyle, ), ); } }