opt.: check client before route pushed

This commit is contained in:
lollipopkit
2023-08-10 00:37:51 +08:00
parent c512a6a274
commit cf1c9643b9
8 changed files with 68 additions and 43 deletions

View File

@@ -1,5 +1,10 @@
import 'package:flutter/material.dart';
import 'package:flutter_gen/gen_l10n/l10n.dart';
import 'package:toolbox/core/analysis.dart';
import 'package:toolbox/data/provider/server.dart';
import 'package:toolbox/locator.dart';
import 'utils/ui.dart';
class AppRoute {
final Widget page;
@@ -14,4 +19,17 @@ class AppRoute {
MaterialPageRoute(builder: (context) => page),
);
}
Future<T?> checkClientAndGo<T>({
required BuildContext context,
required S s,
required String id,
}) {
final server = locator<ServerProvider>().servers[id];
if (server == null || server.client == null) {
showSnackBar(context, Text(s.waitConnection));
return Future.value(null);
}
return go(context);
}
}