New tab list on clients

This commit is contained in:
Juan Gilsanz Polo 2023-04-06 18:10:23 +02:00
parent a5f38915b4
commit 1508c49536
10 changed files with 440 additions and 351 deletions

View file

@ -1,3 +1,4 @@
import 'package:adguard_home_manager/constants/enums.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
@ -42,16 +43,16 @@ class _AccessSettingsWidgetState extends State<AccessSettingsWidget> with Ticker
late TabController tabController;
Future fetchClients() async {
widget.serversProvider.setClientsLoadStatus(0, false);
widget.serversProvider.setClientsLoadStatus(LoadStatus.loading, false);
final result = await getClients(widget.serversProvider.selectedServer!);
if (mounted) {
if (result['result'] == 'success') {
widget.serversProvider.setClientsData(result['data']);
widget.serversProvider.setClientsLoadStatus(1, true);
widget.serversProvider.setClientsLoadStatus(LoadStatus.loaded, true);
}
else {
widget.appConfigProvider.addLog(result['log']);
widget.serversProvider.setClientsLoadStatus(2, true);
widget.serversProvider.setClientsLoadStatus(LoadStatus.error, true);
}
}
}
@ -120,7 +121,7 @@ class _AccessSettingsWidgetState extends State<AccessSettingsWidget> with Ticker
type: 'allowed',
scrollController: scrollController,
loadStatus: serversProvider.clients.loadStatus,
data: serversProvider.clients.loadStatus == 1
data: serversProvider.clients.loadStatus == LoadStatus.loaded
? serversProvider.clients.data!.clientsAllowedBlocked!.allowedClients : [],
fetchClients: fetchClients
),
@ -128,7 +129,7 @@ class _AccessSettingsWidgetState extends State<AccessSettingsWidget> with Ticker
type: 'disallowed',
scrollController: scrollController,
loadStatus: serversProvider.clients.loadStatus,
data: serversProvider.clients.loadStatus == 1
data: serversProvider.clients.loadStatus == LoadStatus.loaded
? serversProvider.clients.data!.clientsAllowedBlocked!.disallowedClients : [],
fetchClients: fetchClients
),
@ -136,7 +137,7 @@ class _AccessSettingsWidgetState extends State<AccessSettingsWidget> with Ticker
type: 'domains',
scrollController: scrollController,
loadStatus: serversProvider.clients.loadStatus,
data: serversProvider.clients.loadStatus == 1
data: serversProvider.clients.loadStatus == LoadStatus.loaded
? serversProvider.clients.data!.clientsAllowedBlocked!.blockedHosts : [],
fetchClients: fetchClients
),

View file

@ -2,6 +2,7 @@
import 'dart:io';
import 'package:adguard_home_manager/constants/enums.dart';
import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';
import 'package:provider/provider.dart';
@ -20,7 +21,7 @@ import 'package:adguard_home_manager/classes/process_modal.dart';
class ClientsList extends StatefulWidget {
final String type;
final ScrollController scrollController;
final int loadStatus;
final LoadStatus loadStatus;
final List<String> data;
final Future Function() fetchClients;
@ -209,7 +210,7 @@ class _ClientsListState extends State<ClientsList> {
}
switch (widget.loadStatus) {
case 0:
case LoadStatus.loading:
return SizedBox(
width: double.maxFinite,
height: MediaQuery.of(context).size.height-171,
@ -231,7 +232,7 @@ class _ClientsListState extends State<ClientsList> {
),
);
case 1:
case LoadStatus.loaded:
return Stack(
children: [
RefreshIndicator(
@ -340,7 +341,7 @@ class _ClientsListState extends State<ClientsList> {
]
);
case 2:
case LoadStatus.error:
return SizedBox(
width: double.maxFinite,
height: MediaQuery.of(context).size.height-101,