This commit is contained in:
Juan Gilsanz Polo 2023-10-08 00:05:38 +02:00
parent 2ad99e737d
commit 9d1ae22bdd
5 changed files with 29 additions and 19 deletions

View file

@ -185,7 +185,9 @@ class _AddedListState extends State<AddedList> {
client: widget.data[index],
onTap: widget.onClientSelected,
onLongPress: openOptionsModal,
onEdit: openClientModal,
onEdit: statusProvider.serverStatus != null
? (c) => openClientModal(c)
: null,
onDelete: openDeleteModal,
splitView: widget.splitView,
serverVersion: statusProvider.serverStatus!.serverVersion,

View file

@ -14,7 +14,7 @@ class AddedClientTile extends StatelessWidget {
final Client client;
final void Function(Client) onTap;
final void Function(Client) onLongPress;
final void Function(Client) onEdit;
final void Function(Client)? onEdit;
final void Function(Client) onDelete;
final Client? selectedClient;
final bool? splitView;
@ -25,7 +25,7 @@ class AddedClientTile extends StatelessWidget {
required this.client,
required this.onTap,
required this.onLongPress,
required this.onEdit,
this.onEdit,
required this.onDelete,
this.selectedClient,
required this.splitView,
@ -44,12 +44,12 @@ class AddedClientTile extends StatelessWidget {
borderRadius: BorderRadius.circular(28),
child: ContextMenuArea(
builder: (context) => [
CustomListTile(
if (onEdit != null) CustomListTile(
title: AppLocalizations.of(context)!.edit,
icon: Icons.edit_rounded,
onTap: () {
Navigator.pop(context);
onEdit(client);
onEdit!(client);
}
),
CustomListTile(
@ -185,12 +185,12 @@ class AddedClientTile extends StatelessWidget {
else {
return ContextMenuArea(
builder: (context) => [
CustomListTile(
if (onEdit != null) CustomListTile(
title: AppLocalizations.of(context)!.seeDetails,
icon: Icons.file_open_rounded,
onTap: () {
Navigator.pop(context);
onEdit(client);
onEdit!(client);
}
),
CustomListTile(

View file

@ -1,19 +1,16 @@
// ignore_for_file: use_build_context_synchronously
import 'dart:io';
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/clients/client/client_screen.dart';
import 'package:adguard_home_manager/screens/clients/client/client_screen_functions.dart';
import 'package:adguard_home_manager/functions/snackbar.dart';
import 'package:adguard_home_manager/providers/status_provider.dart';
import 'package:adguard_home_manager/providers/clients_provider.dart';
import 'package:adguard_home_manager/models/clients.dart';
import 'package:adguard_home_manager/classes/process_modal.dart';
import 'package:adguard_home_manager/providers/status_provider.dart';
import 'package:adguard_home_manager/providers/app_config_provider.dart';
class ClientsFab extends StatelessWidget {
@ -21,8 +18,8 @@ class ClientsFab extends StatelessWidget {
@override
Widget build(BuildContext context) {
final appConfigProvider = Provider.of<AppConfigProvider>(context);
final statusProvider = Provider.of<StatusProvider>(context);
final appConfigProvider = Provider.of<AppConfigProvider>(context);
final clientsProvider = Provider.of<ClientsProvider>(context);
final width = MediaQuery.of(context).size.width;
@ -59,9 +56,14 @@ class ClientsFab extends StatelessWidget {
);
}
return FloatingActionButton(
onPressed: openAddClient,
child: const Icon(Icons.add),
);
if (statusProvider.serverStatus != null) {
return FloatingActionButton(
onPressed: openAddClient,
child: const Icon(Icons.add),
);
}
else {
return const SizedBox();
}
}
}

View file

@ -1,6 +1,8 @@
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
import 'package:adguard_home_manager/providers/status_provider.dart';
import 'package:adguard_home_manager/widgets/custom_list_tile_dialog.dart';
class OptionsModal extends StatelessWidget {
@ -15,6 +17,8 @@ class OptionsModal extends StatelessWidget {
@override
Widget build(BuildContext context) {
final statusProvider = Provider.of<StatusProvider>(context);
return AlertDialog(
contentPadding: const EdgeInsets.symmetric(
horizontal: 0,
@ -39,7 +43,7 @@ class OptionsModal extends StatelessWidget {
mainAxisSize: MainAxisSize.min,
children: [
const SizedBox(height: 24),
CustomListTileDialog(
if (statusProvider.serverStatus != null) CustomListTileDialog(
onTap: () {
Navigator.pop(context);
onEdit();

View file

@ -231,7 +231,9 @@ class _SearchClientsState extends State<SearchClients> {
: const EdgeInsets.symmetric(horizontal: 20, vertical: 15),
isThreeLine: true,
onLongPress: () => openOptionsModal(clientsScreen[index]),
onTap: () => openClientModal(clientsScreen[index]),
onTap: statusProvider.serverStatus != null
? () => openClientModal(clientsScreen[index])
: null,
title: Padding(
padding: const EdgeInsets.only(bottom: 5),
child: Text(