diff --git a/lib/features/auth/presentation/pages/auth_screen.dart b/lib/features/auth/presentation/pages/auth_screen.dart index 877aaf1a..31028059 100644 --- a/lib/features/auth/presentation/pages/auth_screen.dart +++ b/lib/features/auth/presentation/pages/auth_screen.dart @@ -1,4 +1,5 @@ import 'dart:async'; +import 'package:eatvio_app/core/app_router.dart'; import 'package:eatvio_app/core/const.dart'; import 'package:eatvio_app/core/locator_service.dart'; import 'package:eatvio_app/core/theme/theme_helper.dart'; @@ -60,17 +61,20 @@ class _AuthScreenState extends State { } if (context.mounted) { try { - context.read().getMyProfile(); - context.read().getChatRoomsWithLoading(); - context.read().connectToWebSocket(); - context.read().getNotifications(); - context.read().connectToWebSocket(); + await sl().getMyProfile(); + await sl().getChatRoomsWithLoading(); + await sl().connectToWebSocket(); + await sl().getNotifications(); + await sl().connectToWebSocket(); showSuccessToast('Успешный вход'); } catch (e) { rethrow; } - GoRouter.of(context).go('/feed-screen', extra: {'needToInitializeWebSocket': false}); } + AppRouter.navigatorKey.currentContext?.go( + '/feed-screen', + extra: {'needToInitializeWebSocket': false}, + ); } @override diff --git a/lib/features/auth/presentation/pages/scan_qr_code_screen.dart b/lib/features/auth/presentation/pages/scan_qr_code_screen.dart index b266904a..2ea99f06 100644 --- a/lib/features/auth/presentation/pages/scan_qr_code_screen.dart +++ b/lib/features/auth/presentation/pages/scan_qr_code_screen.dart @@ -6,7 +6,12 @@ import 'package:eatvio_app/core/const.dart'; import 'package:eatvio_app/core/locator_service.dart'; import 'package:eatvio_app/core/token_storage.dart'; import 'package:eatvio_app/core/utils/toasts.dart'; +import 'package:eatvio_app/core/websockets/ws_manager.dart'; +import 'package:eatvio_app/features/bottom_navigation_bar/presentation/bloc/profile_avatar_cubit/profile_avatar_cubit.dart'; +import 'package:eatvio_app/features/chat/presentation/bloc/chats_cubit/chats_cubit.dart'; +import 'package:eatvio_app/features/notifications/presentation/notifications_cubit/notifications_cubit.dart'; import 'package:flutter/material.dart'; +import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:go_router/go_router.dart'; import 'package:qr_code_scanner_plus/qr_code_scanner_plus.dart'; @@ -58,7 +63,7 @@ class _ScanQRCodeScreenState extends State { setState(() { result = scanData; }); - controller.pauseCamera(); + await controller.pauseCamera(); try { final scannedUrl = scanData.code; final uri = Uri.parse(scannedUrl ?? ''); @@ -76,13 +81,28 @@ class _ScanQRCodeScreenState extends State { ); final token = response.data['token']; await TokenStorage.saveTokenInStorage(token); + try { + await sl().clear(); + await sl().initialize(); + } catch (e) { + rethrow; + } + try { + await sl().getMyProfile(); + await sl().getChatRoomsWithLoading(); + await sl().connectToWebSocket(); + await sl().getNotifications(); + await sl().connectToWebSocket(); + } catch (e) { + rethrow; + } AppRouter.navigatorKey.currentContext?.go( '/feed-screen', extra: {'needToInitializeWebSocket': false}, ); showSuccessToast('Добро пожаловать!'); } catch (e) { - controller.resumeCamera(); + await controller.resumeCamera(); showErrorToast('Что-то пошло не так. Попробуйте обновить страницу с QR-кодом или войдите с помощью логина и пароля.'); } }); diff --git a/lib/main.dart b/lib/main.dart index a712f6e3..005afaac 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -27,7 +27,7 @@ Future main() async { await di.init(); await SentryFlutter.init( - (options) { + (options) { options.dsn = 'http://ba7f2653067776f3034e6e89850e85a1@sentry.md-desk.ru:9000/2'; options.tracesSampleRate = 1.0; options.debug = false;