Changed dns addresses modal

This commit is contained in:
Juan Gilsanz Polo 2024-02-21 10:50:02 +01:00
parent dcad63fe5c
commit 7a89aea3a5
2 changed files with 76 additions and 44 deletions

View file

@ -1,16 +1,22 @@
import 'package:flutter/material.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/list_bottom_sheet.dart';
class DnsAddressesModal extends StatelessWidget {
final bool isDialog;
final List<String> dnsAddresses;
const DnsAddressesModal({
Key? key,
super.key,
required this.isDialog,
required this.dnsAddresses,
}) : super(key: key);
});
@override
Widget build(BuildContext context) {
if (isDialog == true) {
return AlertDialog(
title: Column(
children: [
@ -27,11 +33,10 @@ class DnsAddressesModal extends StatelessWidget {
)
],
),
content: SizedBox(
height: dnsAddresses.length*56 < 500
? dnsAddresses.length*56 : 500,
width: double.minPositive,
child: ListView(
content: ConstrainedBox(
constraints: const BoxConstraints(maxWidth: 500),
child: SingleChildScrollView(
child: Wrap(
children: dnsAddresses.map((address) => ListTile(
title: Text(
address,
@ -43,6 +48,7 @@ class DnsAddressesModal extends StatelessWidget {
)).toList(),
),
),
),
actions: [
TextButton(
onPressed: () => Navigator.pop(context),
@ -51,4 +57,15 @@ class DnsAddressesModal extends StatelessWidget {
],
);
}
else {
return ListBottomSheet(
icon: Icons.route_rounded,
title: AppLocalizations.of(context)!.dnsAddresses,
children: dnsAddresses.map((address) => CustomListTile(
title: address,
padding: const EdgeInsets.symmetric(horizontal: 24, vertical: 16),
)).toList(),
);
}
}
}

View file

@ -86,12 +86,27 @@ class _ServerInformationState extends State<ServerInformation> {
title: AppLocalizations.of(context)!.dnsAddresses,
subtitle: AppLocalizations.of(context)!.seeDnsAddresses,
onTap: () {
showModal(
if (width > 700) {
showDialog(
context: context,
builder: (context) => DnsAddressesModal(
dnsAddresses: serverInfo.data!.dnsAddresses
dnsAddresses: serverInfo.data!.dnsAddresses,
isDialog: true,
)
);
}
else {
showModalBottomSheet(
context: context,
builder: (context) => DnsAddressesModal(
dnsAddresses: serverInfo.data!.dnsAddresses,
isDialog: false,
),
isScrollControlled: true,
backgroundColor: Colors.transparent,
useSafeArea: true
);
}
},
),
CustomListTile(