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/material.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/list_bottom_sheet.dart';
class DnsAddressesModal extends StatelessWidget { class DnsAddressesModal extends StatelessWidget {
final bool isDialog;
final List<String> dnsAddresses; final List<String> dnsAddresses;
const DnsAddressesModal({ const DnsAddressesModal({
Key? key, super.key,
required this.isDialog,
required this.dnsAddresses, required this.dnsAddresses,
}) : super(key: key); });
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
if (isDialog == true) {
return AlertDialog( return AlertDialog(
title: Column( title: Column(
children: [ children: [
@ -27,11 +33,10 @@ class DnsAddressesModal extends StatelessWidget {
) )
], ],
), ),
content: SizedBox( content: ConstrainedBox(
height: dnsAddresses.length*56 < 500 constraints: const BoxConstraints(maxWidth: 500),
? dnsAddresses.length*56 : 500, child: SingleChildScrollView(
width: double.minPositive, child: Wrap(
child: ListView(
children: dnsAddresses.map((address) => ListTile( children: dnsAddresses.map((address) => ListTile(
title: Text( title: Text(
address, address,
@ -43,6 +48,7 @@ class DnsAddressesModal extends StatelessWidget {
)).toList(), )).toList(),
), ),
), ),
),
actions: [ actions: [
TextButton( TextButton(
onPressed: () => Navigator.pop(context), 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, title: AppLocalizations.of(context)!.dnsAddresses,
subtitle: AppLocalizations.of(context)!.seeDnsAddresses, subtitle: AppLocalizations.of(context)!.seeDnsAddresses,
onTap: () { onTap: () {
showModal( if (width > 700) {
showDialog(
context: context, context: context,
builder: (context) => DnsAddressesModal( 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( CustomListTile(