Changed filters button

This commit is contained in:
Juan Gilsanz Polo 2022-10-02 19:14:00 +02:00
parent 82079268d3
commit 15ba9c8c89
3 changed files with 30 additions and 7 deletions

View file

@ -77,7 +77,7 @@ class LogsProvider with ChangeNotifier {
_selectedResultStatus = value;
notifyListeners();
}
void setSearchIpDomain(String value) {
void setSearchIpDomain(String? value) {
_searchIpDomain = value;
notifyListeners();
}

View file

@ -1,13 +1,18 @@
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
import 'package:adguard_home_manager/screens/logs/logs_filters_modal.dart';
import 'package:adguard_home_manager/providers/logs_provider.dart';
class LogsAppBar extends StatelessWidget with PreferredSizeWidget {
const LogsAppBar({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
final logsProvider = Provider.of<LogsProvider>(context);
void openFilersModal() {
showModalBottomSheet(
context: context,
@ -17,12 +22,27 @@ class LogsAppBar extends StatelessWidget with PreferredSizeWidget {
);
}
int getNumFiltersApplied() {
int number = 0;
if (logsProvider.logsOlderThan != null) {
number++;
}
if (logsProvider.searchIpDomain != null) {
number++;
}
if (logsProvider.selectedResultStatus != 'all') {
number++;
}
return number;
}
return AppBar(
title: Text(AppLocalizations.of(context)!.logs),
actions: [
IconButton(
TextButton.icon(
onPressed: openFilersModal,
icon: const Icon(Icons.filter_list_rounded)
icon: const Icon(Icons.filter_list_rounded),
label: Text("${AppLocalizations.of(context)!.filters} ${getNumFiltersApplied() > 0 ? '(${getNumFiltersApplied().toString()})' : ''}"),
),
const SizedBox(width: 5),
],

View file

@ -227,10 +227,13 @@ class _LogsFiltersModalWidgetState extends State<LogsFiltersModalWidget> {
),
const SizedBox(width: 20),
IconButton(
onPressed: () => setState(() {
addressController.text = '';
addressFieldError = null;
}),
onPressed: () {
setState(() {
addressController.text = '';
addressFieldError = null;
});
logsProvider.setSearchIpDomain(null);
},
icon: const Icon(Icons.clear)
)
],