mirror of
https://github.com/krille-chan/fluffychat
synced 2024-10-10 03:03:38 +00:00
Merge pull request #1381 from krille-chan/krille/remove-duplicated-navigator-workaround
refactor: Remove duplicated navigator workaround
This commit is contained in:
commit
cdece9b7ea
4 changed files with 19 additions and 15 deletions
|
@ -957,7 +957,7 @@ class ChatListController extends State<ChatList>
|
|||
isTorBrowser = isTor;
|
||||
}
|
||||
|
||||
Future<void> dehydrate() => Matrix.of(context).dehydrateAction();
|
||||
Future<void> dehydrate() => Matrix.of(context).dehydrateAction(context);
|
||||
}
|
||||
|
||||
enum EditBundleAction { addToBundle, removeFromBundle }
|
||||
|
|
|
@ -118,7 +118,7 @@ class SettingsSecurityController extends State<SettingsSecurity> {
|
|||
).show(context);
|
||||
}
|
||||
|
||||
Future<void> dehydrateAction() => Matrix.of(context).dehydrateAction();
|
||||
Future<void> dehydrateAction() => Matrix.of(context).dehydrateAction(context);
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) => SettingsSecurityView(this);
|
||||
|
|
|
@ -54,17 +54,13 @@ class FluffyChatApp extends StatelessWidget {
|
|||
clients: clients,
|
||||
// Need a navigator above the Matrix widget for
|
||||
// displaying dialogs
|
||||
child: Navigator(
|
||||
onGenerateRoute: (_) => MaterialPageRoute(
|
||||
builder: (_) => Matrix(
|
||||
child: Matrix(
|
||||
clients: clients,
|
||||
store: store,
|
||||
child: testWidget ?? child,
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -287,13 +287,16 @@ class MatrixState extends State<Matrix> with WidgetsBindingObserver {
|
|||
if (!hidPopup &&
|
||||
{KeyVerificationState.done, KeyVerificationState.error}
|
||||
.contains(request.state)) {
|
||||
Navigator.of(context).pop('dialog');
|
||||
FluffyChatApp.router.pop('dialog');
|
||||
}
|
||||
hidPopup = true;
|
||||
};
|
||||
request.onUpdate = null;
|
||||
hidPopup = true;
|
||||
await KeyVerificationDialog(request: request).show(context);
|
||||
await KeyVerificationDialog(request: request).show(
|
||||
FluffyChatApp.router.routerDelegate.navigatorKey.currentContext ??
|
||||
context,
|
||||
);
|
||||
});
|
||||
onLoginStateChanged[name] ??= c.onLoginStateChanged.stream.listen((state) {
|
||||
final loggedInWithMultipleClients = widget.clients.length > 1;
|
||||
|
@ -304,7 +307,10 @@ class MatrixState extends State<Matrix> with WidgetsBindingObserver {
|
|||
_cancelSubs(c.clientName);
|
||||
widget.clients.remove(c);
|
||||
ClientManager.removeClientNameFromStore(c.clientName, store);
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
ScaffoldMessenger.of(
|
||||
FluffyChatApp.router.routerDelegate.navigatorKey.currentContext ??
|
||||
context,
|
||||
).showSnackBar(
|
||||
SnackBar(
|
||||
content: Text(L10n.of(context)!.oneClientLoggedOut),
|
||||
),
|
||||
|
@ -362,7 +368,9 @@ class MatrixState extends State<Matrix> with WidgetsBindingObserver {
|
|||
onFcmError: (errorMsg, {Uri? link}) async {
|
||||
final result = await showOkCancelAlertDialog(
|
||||
barrierDismissible: true,
|
||||
context: context,
|
||||
context: FluffyChatApp
|
||||
.router.routerDelegate.navigatorKey.currentContext ??
|
||||
context,
|
||||
title: L10n.of(context)!.pushNotificationsNotAvailable,
|
||||
message: errorMsg,
|
||||
fullyCapitalizedForMaterial: false,
|
||||
|
@ -483,7 +491,7 @@ class MatrixState extends State<Matrix> with WidgetsBindingObserver {
|
|||
);
|
||||
}
|
||||
|
||||
Future<void> dehydrateAction() async {
|
||||
Future<void> dehydrateAction(BuildContext context) async {
|
||||
final response = await showOkCancelAlertDialog(
|
||||
context: context,
|
||||
isDestructiveAction: true,
|
||||
|
|
Loading…
Reference in a new issue