filterTaskListData function
Implementation
Future<List<String>> filterTaskListData(
var ref,
List<String> tasksList,
String searchTerm,
) async {
List<String> filteredTaskList = [];
for (final taskListId in tasksList) {
//Check search param in task list
final taskListItem = await ref.watch(taskListProvider(taskListId).future);
if (taskListItem.name().toLowerCase().contains(searchTerm)) {
filteredTaskList.add(taskListId);
continue;
}
//Check search param in task list items data
final tasks = await ref.watch(taskItemsListProvider(taskListItem).future);
for (final openTaskItemId in tasks.openTasks) {
final openTaskItem = await ref.watch(
taskItemProvider((taskListId: taskListId, taskId: openTaskItemId))
.future,
);
if (openTaskItem.title().toLowerCase().contains(searchTerm)) {
filteredTaskList.add(taskListId);
break;
}
}
}
return filteredTaskList;
}