feat: check for correct version
This commit is contained in:
parent
b751d93be6
commit
8e379241ee
6 changed files with 169 additions and 92 deletions
|
|
@ -1,5 +1,6 @@
|
|||
import 'package:go_router/go_router.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:seshat/config/constants.dart';
|
||||
import 'package:seshat/data/repositories/auth_repository.dart';
|
||||
import 'package:seshat/routing/routes.dart';
|
||||
import 'package:seshat/ui/add_page/view_model/add_view_model.dart';
|
||||
|
|
@ -12,14 +13,24 @@ import 'package:seshat/ui/home_page/view_model/home_view_model.dart';
|
|||
import 'package:seshat/ui/home_page/widgets/home_page.dart';
|
||||
import 'package:seshat/ui/sell_page/view_model/sell_view_model.dart';
|
||||
import 'package:seshat/ui/sell_page/widgets/sell_page.dart';
|
||||
import 'package:seshat/utils/result.dart';
|
||||
|
||||
GoRouter router(AuthRepository authRepository) => GoRouter(
|
||||
initialLocation: Routes.add,
|
||||
redirect: (context, state) async {
|
||||
final loggedIn = await context.read<AuthRepository>().isLoggedIn;
|
||||
final result = await context.read<AuthRepository>().getRemoteApiVersion();
|
||||
bool isUpToDate = false;
|
||||
switch (result) {
|
||||
case Ok():
|
||||
isUpToDate = result.value == apiVersion;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
final logginIn = state.matchedLocation == Routes.login;
|
||||
|
||||
if (!loggedIn) {
|
||||
if (!loggedIn || !isUpToDate) {
|
||||
return Routes.login;
|
||||
}
|
||||
|
||||
|
|
|
|||
Reference in a new issue