Fixed small issues

This commit is contained in:
Juan Gilsanz Polo 2023-05-06 04:16:24 +02:00
parent dd8583a168
commit d9f68484e0
5 changed files with 59 additions and 23 deletions

View file

@ -116,6 +116,7 @@ On [this repository](https://github.com/JuanRodenas/Pihole_list) you can find a
- [sqflite common ffi](https://pub.dev/packages/sqflite_common_ffi) - [sqflite common ffi](https://pub.dev/packages/sqflite_common_ffi)
- [window size](https://github.com/google/flutter-desktop-embedding) - [window size](https://github.com/google/flutter-desktop-embedding)
- [flutter split view](https://github.com/JGeek00/flutter_split_view) (forked from [here](https://pub.dev/packages/flutter_split_view)) - [flutter split view](https://github.com/JGeek00/flutter_split_view) (forked from [here](https://pub.dev/packages/flutter_split_view))
- [async](https://pub.dev/packages/async)
<br> <br>

View file

@ -3,7 +3,9 @@ import 'package:contextmenu/contextmenu.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart';
import 'package:adguard_home_manager/widgets/custom_list_tile.dart'; import 'package:adguard_home_manager/widgets/custom_list_tile.dart';
import 'package:adguard_home_manager/widgets/options_modal.dart';
import 'package:adguard_home_manager/models/menu_option.dart';
import 'package:adguard_home_manager/functions/copy_clipboard.dart'; import 'package:adguard_home_manager/functions/copy_clipboard.dart';
import 'package:adguard_home_manager/models/clients.dart'; import 'package:adguard_home_manager/models/clients.dart';
@ -49,6 +51,27 @@ class ActiveClientTile extends StatelessWidget {
child: InkWell( child: InkWell(
borderRadius: BorderRadius.circular(28), borderRadius: BorderRadius.circular(28),
onTap: () => onTap(client), onTap: () => onTap(client),
onLongPress: () => showDialog(
context: context,
builder: (context) => OptionsModal(
options: [
MenuOption(
title: AppLocalizations.of(context)!.copyClipboard,
icon: Icons.copy_rounded,
action: () {
copyToClipboard(
context: context,
value: client.name != ''
? client.name!
: client.ip,
successMessage: AppLocalizations.of(context)!.copiedClipboard,
);
Navigator.pop(context);
},
)
]
),
),
child: Container( child: Container(
width: double.maxFinite, width: double.maxFinite,
padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 12), padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 12),

View file

@ -1,6 +1,7 @@
import 'dart:io'; import 'dart:io';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:async/async.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart';
import 'package:adguard_home_manager/screens/logs/log_tile.dart'; import 'package:adguard_home_manager/screens/logs/log_tile.dart';
@ -44,6 +45,8 @@ class _LogsListClientState extends State<LogsListClient> {
bool showDivider = true; bool showDivider = true;
CancelableOperation? cancelableRequest;
Future fetchLogs({ Future fetchLogs({
int? inOffset, int? inOffset,
bool? loadingMore, bool? loadingMore,
@ -56,34 +59,42 @@ class _LogsListClientState extends State<LogsListClient> {
setState(() => isLoadingMore = true); setState(() => isLoadingMore = true);
} }
final result = await getLogs( if (cancelableRequest != null) cancelableRequest!.cancel();
server: widget.serversProvider.selectedServer!,
count: logsQuantity, cancelableRequest = CancelableOperation.fromFuture(
offset: offst, getLogs(
search: '"${widget.ip}"' server: widget.serversProvider.selectedServer!,
count: logsQuantity,
offset: offst,
search: '"${widget.ip}"'
)
); );
if (loadingMore != null && loadingMore == true) { final result = await cancelableRequest?.value;
setState(() => isLoadingMore = false);
}
if (mounted) { if (result != null) {
if (result['result'] == 'success') { if (loadingMore != null && loadingMore == true) {
setState(() => offset = inOffset != null ? inOffset+logsQuantity : offset+logsQuantity); setState(() => isLoadingMore = false);
if (loadingMore != null && loadingMore == true && logsData != null) { }
LogsData newLogsData = result['data'];
newLogsData.data = [...logsData!.data, ...result['data'].data]; if (mounted) {
setState(() => logsData = newLogsData); if (result['result'] == 'success') {
setState(() => offset = inOffset != null ? inOffset+logsQuantity : offset+logsQuantity);
if (loadingMore != null && loadingMore == true && logsData != null) {
LogsData newLogsData = result['data'];
newLogsData.data = [...logsData!.data, ...result['data'].data];
setState(() => logsData = newLogsData);
}
else {
LogsData newLogsData = result['data'];
setState(() => logsData = newLogsData);
}
setState(() => loadStatus = 1);
} }
else { else {
LogsData newLogsData = result['data']; setState(() => loadStatus = 2);
setState(() => logsData = newLogsData); widget.appConfigProvider.addLog(result['log']);
} }
setState(() => loadStatus = 1);
}
else {
setState(() => loadStatus = 2);
widget.appConfigProvider.addLog(result['log']);
} }
} }
} }

View file

@ -34,7 +34,7 @@ packages:
source: hosted source: hosted
version: "2.3.2" version: "2.3.2"
async: async:
dependency: transitive dependency: "direct main"
description: description:
name: async name: async
sha256: bfe67ef28df125b7dddcea62755991f807aa39a2492a23e1550161692950bbe0 sha256: bfe67ef28df125b7dddcea62755991f807aa39a2492a23e1550161692950bbe0

View file

@ -69,6 +69,7 @@ dependencies:
ref: master-alt ref: master-alt
url_launcher: ^6.1.10 url_launcher: ^6.1.10
contextmenu: ^3.0.0 contextmenu: ^3.0.0
async: ^2.10.0
dev_dependencies: dev_dependencies:
flutter_test: flutter_test: