Navigate with root key

This commit is contained in:
Juan Gilsanz Polo 2023-10-29 14:31:11 +01:00
parent 5c50a486c4
commit c391c76f5a
11 changed files with 121 additions and 95 deletions

View file

@ -12,6 +12,7 @@ import 'package:adguard_home_manager/widgets/confirm_action_modal.dart';
import 'package:adguard_home_manager/screens/settings/dhcp/dhcp_leases.dart';
import 'package:adguard_home_manager/screens/settings/dhcp/select_interface_modal.dart';
import 'package:adguard_home_manager/routes/router_globals.dart';
import 'package:adguard_home_manager/functions/desktop_mode.dart';
import 'package:adguard_home_manager/functions/snackbar.dart';
import 'package:adguard_home_manager/constants/enums.dart';
@ -705,12 +706,14 @@ class _DhcpScreenState extends State<DhcpScreen> {
color: Colors.transparent,
child: InkWell(
onTap: () {
Navigator.push(context, MaterialPageRoute(
builder: (context) => DhcpLeases(
items: dhcpProvider.dhcp!.dhcpStatus.leases,
staticLeases: false,
rootNavigatorKey.currentState!.push(
MaterialPageRoute(
builder: (context) => DhcpLeases(
items: dhcpProvider.dhcp!.dhcpStatus.leases,
staticLeases: false,
)
)
));
);
},
child: Container(
padding: const EdgeInsets.all(16),
@ -738,12 +741,14 @@ class _DhcpScreenState extends State<DhcpScreen> {
color: Colors.transparent,
child: InkWell(
onTap: () {
Navigator.push(context, MaterialPageRoute(
builder: (context) => DhcpLeases(
items: dhcpProvider.dhcp!.dhcpStatus.staticLeases,
staticLeases: true,
rootNavigatorKey.currentState!.push(
MaterialPageRoute(
builder: (context) => DhcpLeases(
items: dhcpProvider.dhcp!.dhcpStatus.staticLeases,
staticLeases: true,
)
)
));
);
},
child: Container(
padding: const EdgeInsets.all(16),
@ -781,12 +786,14 @@ class _DhcpScreenState extends State<DhcpScreen> {
);
}
else {
Navigator.push(context, MaterialPageRoute(
builder: (context) => DhcpLeases(
items: dhcpProvider.dhcp!.dhcpStatus.leases,
staticLeases: false,
rootNavigatorKey.currentState!.push(
MaterialPageRoute(
builder: (context) => DhcpLeases(
items: dhcpProvider.dhcp!.dhcpStatus.leases,
staticLeases: false,
)
)
));
);
}
},
child: Row(
@ -808,12 +815,14 @@ class _DhcpScreenState extends State<DhcpScreen> {
);
}
else {
Navigator.push(context, MaterialPageRoute(
builder: (context) => DhcpLeases(
items: dhcpProvider.dhcp!.dhcpStatus.staticLeases,
staticLeases: true,
rootNavigatorKey.currentState!.push(
MaterialPageRoute(
builder: (context) => DhcpLeases(
items: dhcpProvider.dhcp!.dhcpStatus.staticLeases,
staticLeases: true,
)
)
));
);
}
},
child: Row(

View file

@ -14,6 +14,7 @@ import 'package:adguard_home_manager/screens/settings/dns/upstream_dns.dart';
import 'package:adguard_home_manager/widgets/custom_list_tile.dart';
import 'package:adguard_home_manager/constants/enums.dart';
import 'package:adguard_home_manager/routes/router_globals.dart';
import 'package:adguard_home_manager/functions/desktop_mode.dart';
import 'package:adguard_home_manager/providers/dns_provider.dart';
import 'package:adguard_home_manager/functions/clear_dns_cache.dart';
@ -53,9 +54,11 @@ class _DnsSettingsState extends State<DnsSettings> {
SplitView.of(context).push(w);
}
else {
Navigator.push(context, MaterialPageRoute(
builder: (context) => w
));
rootNavigatorKey.currentState!.push(
MaterialPageRoute(
builder: (context) => w
)
);
}
}

View file

@ -12,6 +12,7 @@ import 'package:adguard_home_manager/screens/settings/general_settings/reorderab
import 'package:adguard_home_manager/widgets/custom_list_tile.dart';
import 'package:adguard_home_manager/widgets/section_label.dart';
import 'package:adguard_home_manager/routes/router_globals.dart';
import 'package:adguard_home_manager/functions/check_app_updates.dart';
import 'package:adguard_home_manager/functions/desktop_mode.dart';
import 'package:adguard_home_manager/functions/snackbar.dart';
@ -191,9 +192,11 @@ class _GeneralSettingsState extends State<GeneralSettings> {
icon: Icons.reorder_rounded,
title: AppLocalizations.of(context)!.topItemsOrder,
subtitle: AppLocalizations.of(context)!.topItemsOrderDescription,
onTap: () => Navigator.push(context, MaterialPageRoute(
builder: (context) => const ReorderableTopItemsHome()
)),
onTap: () => rootNavigatorKey.currentState!.push(
MaterialPageRoute(
builder: (context) => const ReorderableTopItemsHome()
)
)
),
CustomListTile(
icon: Icons.donut_large_rounded,

View file

@ -23,6 +23,7 @@ import 'package:adguard_home_manager/widgets/custom_settings_tile.dart';
import 'package:adguard_home_manager/widgets/section_label.dart';
import 'package:adguard_home_manager/widgets/custom_list_tile.dart';
import 'package:adguard_home_manager/routes/router_globals.dart';
import 'package:adguard_home_manager/functions/desktop_mode.dart';
import 'package:adguard_home_manager/constants/strings.dart';
import 'package:adguard_home_manager/functions/open_url.dart';
@ -119,7 +120,7 @@ class SettingsWidget extends StatelessWidget {
icon: icon,
trailing: trailing,
onTap: () {
Navigator.of(context).push(
rootNavigatorKey.currentState!.push(
MaterialPageRoute(builder: (context) => screenToNavigate)
);
},