From e859e083d1d77f79445e23ec76f50cb6f00b362e Mon Sep 17 00:00:00 2001 From: BLoC Date: Fri, 7 Mar 2025 12:04:51 +0300 Subject: [PATCH 1/7] feat: alert dialog before log out, enlarge logo size on auth screen --- ios/Runner.xcodeproj/project.pbxproj | 12 +++--- .../auth/presentation/pages/auth_screen.dart | 2 +- .../menu/presentation/pages/menu_screen.dart | 40 ++++++++++++++----- pubspec.yaml | 2 +- 4 files changed, 39 insertions(+), 17 deletions(-) diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index 8b1d1fef..d790bfad 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -365,7 +365,7 @@ CLANG_ENABLE_MODULES = YES; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 45; + CURRENT_PROJECT_VERSION = 46; DEVELOPMENT_TEAM = VL68C36HYS; ENABLE_BITCODE = NO; FRAMEWORK_SEARCH_PATHS = ( @@ -383,7 +383,7 @@ "$(inherited)", "$(PROJECT_DIR)/Flutter", ); - MARKETING_VERSION = 1.0.45; + MARKETING_VERSION = 1.0.46; PRODUCT_BUNDLE_IDENTIFIER = com.eatvioapp.app; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; @@ -514,7 +514,7 @@ CLANG_ENABLE_MODULES = YES; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 45; + CURRENT_PROJECT_VERSION = 46; DEVELOPMENT_TEAM = VL68C36HYS; ENABLE_BITCODE = NO; FRAMEWORK_SEARCH_PATHS = ( @@ -532,7 +532,7 @@ "$(inherited)", "$(PROJECT_DIR)/Flutter", ); - MARKETING_VERSION = 1.0.45; + MARKETING_VERSION = 1.0.46; PRODUCT_BUNDLE_IDENTIFIER = com.eatvioapp.app; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; @@ -551,7 +551,7 @@ CLANG_ENABLE_MODULES = YES; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 45; + CURRENT_PROJECT_VERSION = 46; DEVELOPMENT_TEAM = VL68C36HYS; ENABLE_BITCODE = NO; FRAMEWORK_SEARCH_PATHS = ( @@ -569,7 +569,7 @@ "$(inherited)", "$(PROJECT_DIR)/Flutter", ); - MARKETING_VERSION = 1.0.45; + MARKETING_VERSION = 1.0.46; PRODUCT_BUNDLE_IDENTIFIER = com.eatvioapp.app; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; diff --git a/lib/features/auth/presentation/pages/auth_screen.dart b/lib/features/auth/presentation/pages/auth_screen.dart index f620fb76..0e1bce7a 100644 --- a/lib/features/auth/presentation/pages/auth_screen.dart +++ b/lib/features/auth/presentation/pages/auth_screen.dart @@ -37,7 +37,7 @@ class _AuthScreenState extends State { centerTitle: true, title: SvgPicture.asset( ImageConstant.imgLogoEatvio, - height: 48, + height: 64, fit: BoxFit.contain, ), ), diff --git a/lib/features/menu/presentation/pages/menu_screen.dart b/lib/features/menu/presentation/pages/menu_screen.dart index 45728f70..7c359acb 100644 --- a/lib/features/menu/presentation/pages/menu_screen.dart +++ b/lib/features/menu/presentation/pages/menu_screen.dart @@ -8,6 +8,7 @@ import 'package:eatvio_app/features/dev_tools/presentation/dev_tools_screen.dart import 'package:eatvio_app/features/my_diets/presentation/my_diets_screen.dart'; import 'package:eatvio_app/features/my_plans/presentation/my_plans_screen.dart'; import 'package:eatvio_app/features/profile/models/profile_model.dart'; +import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:go_router/go_router.dart'; @@ -141,15 +142,36 @@ class MenuScreen extends StatelessWidget { _onTapLogout(BuildContext context) { return () async { - try { - await sl().post( - baseUrl + '/api/profile/logout', - ); - } catch (e) { - } finally { - await TokenStorage.removeTokenInStorage(); - GoRouter.of(context).go('/auth-screen', extra: true); - } + showDialog( + context: context, + builder: (context) => CupertinoAlertDialog( + title: Text("Выход"), + actions: [ + CupertinoDialogAction( + onPressed: () async { + try { + await sl().post( + baseUrl + '/api/profile/logout', + ); + } catch (e) { + } finally { + await TokenStorage.removeTokenInStorage(); + GoRouter.of(context).go('/auth-screen', extra: true); + } + }, + child: Text("Выйти"), + isDestructiveAction: true, + ), + CupertinoDialogAction( + onPressed: () { + Navigator.of(context).pop(); + }, + child: Text("Отмена"), + ), + ], + content: Text("Ð’Ñ‹ уверены что хотите выйти из аккаунта?"), + ), + ); }; } } diff --git a/pubspec.yaml b/pubspec.yaml index 6eab7d58..69d34415 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: eatvio_app description: A new Flutter project. -version: 1.0.45+45 +version: 1.0.46+46 publish_to: 'none' environment: From ebfc9eea1ee43d5ae1981e838baba22dfa37824d Mon Sep 17 00:00:00 2001 From: BLoC Date: Fri, 7 Mar 2025 12:58:12 +0300 Subject: [PATCH 2/7] fix: no internet screen --- .../internet_connection_checker_screen.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/features/internet_connection_checker/internet_connection_checker_screen.dart b/lib/features/internet_connection_checker/internet_connection_checker_screen.dart index dc6ed06b..4256518e 100644 --- a/lib/features/internet_connection_checker/internet_connection_checker_screen.dart +++ b/lib/features/internet_connection_checker/internet_connection_checker_screen.dart @@ -145,7 +145,7 @@ class NoInternetScreen extends StatelessWidget { Padding( padding: const EdgeInsets.symmetric(horizontal: 40), child: Text( - 'Проверьте Ñ�оединение Ñ� Ñ�етью и попробуйте ещё раз', + 'Проверьте Ñ�оединение Ñ� Ñ�етью\nи попробуйте ещё раз', textAlign: TextAlign.center, style: TextStyles.textMMedium.copyWith( color: appTheme.gray, From 8ef59a0adff1824436962491e158cda991bfa338 Mon Sep 17 00:00:00 2001 From: BLoC Date: Fri, 7 Mar 2025 14:55:39 +0300 Subject: [PATCH 3/7] feat: no avatar --- .../arm64-v8a/configure_fingerprint.bin | 24 +++++++++--------- .../armeabi-v7a/configure_fingerprint.bin | 24 +++++++++--------- .../5g696y4j/x86/configure_fingerprint.bin | 24 +++++++++--------- .../5g696y4j/x86_64/configure_fingerprint.bin | 24 +++++++++--------- assets/images/no_avatar.png | Bin 0 -> 8842 bytes .../presentation/pages/profile_screen.dart | 3 ++- 6 files changed, 50 insertions(+), 49 deletions(-) create mode 100644 assets/images/no_avatar.png diff --git a/android/app/.cxx/Debug/5g696y4j/arm64-v8a/configure_fingerprint.bin b/android/app/.cxx/Debug/5g696y4j/arm64-v8a/configure_fingerprint.bin index 63407afe..d65c2091 100644 --- a/android/app/.cxx/Debug/5g696y4j/arm64-v8a/configure_fingerprint.bin +++ b/android/app/.cxx/Debug/5g696y4j/arm64-v8a/configure_fingerprint.bin @@ -2,27 +2,27 @@ C/C++ Structured Loga _ ]/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/arm64-v8a/additional_project_files.txtC A -?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  ‰ÚÙ²Ö2  ‹°™²Ö2^ +?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  էȃ×2  ‹°™²Ö2^ \ -Z/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/arm64-v8a/android_gradle_build.json  �ÚÙ²Ö2¥ ‘°™²Ö2c +Z/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/arm64-v8a/android_gradle_build.json  էȃ×2¥ ‘°™²Ö2c a -_/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/arm64-v8a/android_gradle_build_mini.json  �ÚÙ²Ö2² –°™²Ö2P +_/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/arm64-v8a/android_gradle_build_mini.json  էȃ×2² –°™²Ö2P N -L/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/arm64-v8a/build.ninja  �ÚÙ²Ö2ŠÃ 쯙²Ö2T +L/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/arm64-v8a/build.ninja  էȃ×2ŠÃ 쯙²Ö2T R -P/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/arm64-v8a/build.ninja.txt  �ÚÙ²Ö2Y +P/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/arm64-v8a/build.ninja.txt  ֧ȃ×2Y W -U/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/arm64-v8a/build_file_index.txt  �ÚÙ²Ö2 P —°™²Ö2Z +U/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/arm64-v8a/build_file_index.txt  ֧ȃ×2 P —°™²Ö2Z X -V/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/arm64-v8a/compile_commands.json  �ÚÙ²Ö2^ +V/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/arm64-v8a/compile_commands.json  ֧ȃ×2^ \ -Z/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/arm64-v8a/compile_commands.json.bin  �ÚÙ²Ö2 d +Z/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/arm64-v8a/compile_commands.json.bin  ֧ȃ×2 d b -`/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/arm64-v8a/metadata_generation_command.txt  �ÚÙ²Ö2 +`/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/arm64-v8a/metadata_generation_command.txt  ֧ȃ×2 ÿ —°™²Ö2W U -S/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/arm64-v8a/prefab_config.json  �ÚÙ²Ö2  ( —°™²Ö2\ +S/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/arm64-v8a/prefab_config.json  ֧ȃ×2  ( —°™²Ö2\ Z -X/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/arm64-v8a/symbol_folder_index.txt  �ÚÙ²Ö2  O —°™²Ö2T +X/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/arm64-v8a/symbol_folder_index.txt  ֧ȃ×2  O —°™²Ö2T R -P/Users/alex/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt  �ÚÙ²Ö2 ¤  ­ÑÚÏ2 \ No newline at end of file +P/Users/alex/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt  ֧ȃ×2 ¤  ­ÑÚÏ2 \ No newline at end of file diff --git a/android/app/.cxx/Debug/5g696y4j/armeabi-v7a/configure_fingerprint.bin b/android/app/.cxx/Debug/5g696y4j/armeabi-v7a/configure_fingerprint.bin index 3134ce49..29ac93c5 100644 --- a/android/app/.cxx/Debug/5g696y4j/armeabi-v7a/configure_fingerprint.bin +++ b/android/app/.cxx/Debug/5g696y4j/armeabi-v7a/configure_fingerprint.bin @@ -2,27 +2,27 @@ C/C++ Structured Logc a _/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/armeabi-v7a/additional_project_files.txtC A -?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  ¦ÚÙ²Ö2  àòš²Ö2` +?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  —©Èƒ×2  àòš²Ö2` ^ -\/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/armeabi-v7a/android_gradle_build.json  ¦ÚÙ²Ö2© âòš²Ö2e +\/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/armeabi-v7a/android_gradle_build.json  —©Èƒ×2© âòš²Ö2e c -a/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/armeabi-v7a/android_gradle_build_mini.json  ¦ÚÙ²Ö2¶ ãòš²Ö2R +a/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/armeabi-v7a/android_gradle_build_mini.json  —©Èƒ×2¶ ãòš²Ö2R P -N/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/armeabi-v7a/build.ninja  ¦ÚÙ²Ö2–à Âòš²Ö2V +N/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/armeabi-v7a/build.ninja  —©Èƒ×2–à Âòš²Ö2V T -R/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/armeabi-v7a/build.ninja.txt  ¦ÚÙ²Ö2[ +R/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/armeabi-v7a/build.ninja.txt  —©Èƒ×2[ Y -W/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/armeabi-v7a/build_file_index.txt  ¦ÚÙ²Ö2 P ãòš²Ö2\ +W/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/armeabi-v7a/build_file_index.txt  —©Èƒ×2 P ãòš²Ö2\ Z -X/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/armeabi-v7a/compile_commands.json  ¦ÚÙ²Ö2` +X/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/armeabi-v7a/compile_commands.json  —©Èƒ×2` ^ -\/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/armeabi-v7a/compile_commands.json.bin  ¦ÚÙ²Ö2 f +\/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/armeabi-v7a/compile_commands.json.bin  —©Èƒ×2 f d -b/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/armeabi-v7a/metadata_generation_command.txt  ¦ÚÙ²Ö2 +b/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/armeabi-v7a/metadata_generation_command.txt  —©Èƒ×2 ‰ ãòš²Ö2Y W -U/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/armeabi-v7a/prefab_config.json  ¦ÚÙ²Ö2  ( ãòš²Ö2^ +U/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/armeabi-v7a/prefab_config.json  —©Èƒ×2  ( ãòš²Ö2^ \ -Z/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/armeabi-v7a/symbol_folder_index.txt  ¦ÚÙ²Ö2  Q ãòš²Ö2T +Z/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/armeabi-v7a/symbol_folder_index.txt  —©Èƒ×2  Q ãòš²Ö2T R -P/Users/alex/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt  ¦ÚÙ²Ö2 ¤  ­ÑÚÏ2 \ No newline at end of file +P/Users/alex/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt  —©Èƒ×2 ¤  ­ÑÚÏ2 \ No newline at end of file diff --git a/android/app/.cxx/Debug/5g696y4j/x86/configure_fingerprint.bin b/android/app/.cxx/Debug/5g696y4j/x86/configure_fingerprint.bin index dfd94e0d..12933496 100644 --- a/android/app/.cxx/Debug/5g696y4j/x86/configure_fingerprint.bin +++ b/android/app/.cxx/Debug/5g696y4j/x86/configure_fingerprint.bin @@ -2,27 +2,27 @@ C/C++ Structured Log[ Y W/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86/additional_project_files.txtC A -?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  ®ÚÙ²Ö2  �÷š²Ö2X +?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  ¥©Èƒ×2  �÷š²Ö2X V -T/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86/android_gradle_build.json  ®ÚÙ²Ö2™ �÷š²Ö2] +T/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86/android_gradle_build.json  ¥©Èƒ×2™ �÷š²Ö2] [ -Y/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86/android_gradle_build_mini.json  ®ÚÙ²Ö2¦ ‘÷š²Ö2J +Y/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86/android_gradle_build_mini.json  ¥©Èƒ×2¦ ‘÷š²Ö2J H -F/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86/build.ninja  ®ÚÙ²Ö2æÂ †÷š²Ö2N +F/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86/build.ninja  ¥©Èƒ×2æÂ †÷š²Ö2N L -J/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86/build.ninja.txt  ®ÚÙ²Ö2S +J/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86/build.ninja.txt  ¥©Èƒ×2S Q -O/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86/build_file_index.txt  ®ÚÙ²Ö2 P ‘÷š²Ö2T +O/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86/build_file_index.txt  ¥©Èƒ×2 P ‘÷š²Ö2T R -P/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86/compile_commands.json  ®ÚÙ²Ö2X +P/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86/compile_commands.json  ¥©Èƒ×2X V -T/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86/compile_commands.json.bin  ®ÚÙ²Ö2 ^ +T/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86/compile_commands.json.bin  ¥©Èƒ×2 ^ \ -Z/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86/metadata_generation_command.txt  ®ÚÙ²Ö2 +Z/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86/metadata_generation_command.txt  ¥©Èƒ×2 á ‘÷š²Ö2Q O -M/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86/prefab_config.json  ®ÚÙ²Ö2  ( ‘÷š²Ö2V +M/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86/prefab_config.json  ¥©Èƒ×2  ( ‘÷š²Ö2V T -R/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86/symbol_folder_index.txt  ®ÚÙ²Ö2  I ‘÷š²Ö2T +R/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86/symbol_folder_index.txt  ¥©Èƒ×2  I ‘÷š²Ö2T R -P/Users/alex/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt  ®ÚÙ²Ö2 ¤  ­ÑÚÏ2 \ No newline at end of file +P/Users/alex/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt  ¥©Èƒ×2 ¤  ­ÑÚÏ2 \ No newline at end of file diff --git a/android/app/.cxx/Debug/5g696y4j/x86_64/configure_fingerprint.bin b/android/app/.cxx/Debug/5g696y4j/x86_64/configure_fingerprint.bin index 54e69ef9..e498da23 100644 --- a/android/app/.cxx/Debug/5g696y4j/x86_64/configure_fingerprint.bin +++ b/android/app/.cxx/Debug/5g696y4j/x86_64/configure_fingerprint.bin @@ -2,27 +2,27 @@ C/C++ Structured Log^ \ Z/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86_64/additional_project_files.txtC A -?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  ÀÚÙ²Ö2  Üúš²Ö2[ +?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  á©Èƒ×2  Üúš²Ö2[ Y -W/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86_64/android_gradle_build.json  ÁÚÙ²Ö2Ÿ Þúš²Ö2` +W/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86_64/android_gradle_build.json  á©Èƒ×2Ÿ Þúš²Ö2` ^ -\/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86_64/android_gradle_build_mini.json  ÁÚÙ²Ö2¬ Þúš²Ö2M +\/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86_64/android_gradle_build_mini.json  á©Èƒ×2¬ Þúš²Ö2M K -I/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86_64/build.ninja  ÁÚÙ²Ö2øÂ Ðúš²Ö2Q +I/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86_64/build.ninja  á©Èƒ×2øÂ Ðúš²Ö2Q O -M/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86_64/build.ninja.txt  ÁÚÙ²Ö2V +M/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86_64/build.ninja.txt  á©Èƒ×2V T -R/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86_64/build_file_index.txt  ÁÚÙ²Ö2 P ßúš²Ö2W +R/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86_64/build_file_index.txt  á©Èƒ×2 P ßúš²Ö2W U -S/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86_64/compile_commands.json  ÁÚÙ²Ö2[ +S/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86_64/compile_commands.json  á©Èƒ×2[ Y -W/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86_64/compile_commands.json.bin  ÁÚÙ²Ö2 a +W/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86_64/compile_commands.json.bin  á©Èƒ×2 a _ -]/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86_64/metadata_generation_command.txt  ÁÚÙ²Ö2 +]/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86_64/metadata_generation_command.txt  á©Èƒ×2 ð ßúš²Ö2T R -P/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86_64/prefab_config.json  ÁÚÙ²Ö2  ( ßúš²Ö2Y +P/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86_64/prefab_config.json  á©Èƒ×2  ( ßúš²Ö2Y W -U/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86_64/symbol_folder_index.txt  ÁÚÙ²Ö2  L ßúš²Ö2T +U/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86_64/symbol_folder_index.txt  á©Èƒ×2  L ßúš²Ö2T R -P/Users/alex/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt  ÁÚÙ²Ö2 ¤  ­ÑÚÏ2 \ No newline at end of file +P/Users/alex/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt  á©Èƒ×2 ¤  ­ÑÚÏ2 \ No newline at end of file diff --git a/assets/images/no_avatar.png b/assets/images/no_avatar.png new file mode 100644 index 0000000000000000000000000000000000000000..3b0119165f73539867a70a22b39b4b0c23067678 GIT binary patch literal 8842 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 VxgAyt{&fV { tag: state.profile.profilePhotoUrl, child: CircleAvatar( radius: 32, - backgroundImage: NetworkImage(state.profile.profilePhotoUrl), + foregroundImage: NetworkImage(state.profile.profilePhotoUrl), + backgroundImage: AssetImage('assets/images/no_avatar.png'), ), ), ), From 91c907bc57c81de56c27dbb9b5ab553be155325e Mon Sep 17 00:00:00 2001 From: BLoC Date: Mon, 10 Mar 2025 13:01:21 +0300 Subject: [PATCH 4/7] feat: auto login after registration --- .../arm64-v8a/configure_fingerprint.bin | 24 ++++---- .../armeabi-v7a/configure_fingerprint.bin | 24 ++++---- .../5g696y4j/x86/configure_fingerprint.bin | 24 ++++---- .../5g696y4j/x86_64/configure_fingerprint.bin | 24 ++++---- .../pages/webview_registration_screen.dart | 55 ++++++++++++++++++- 5 files changed, 101 insertions(+), 50 deletions(-) diff --git a/android/app/.cxx/Debug/5g696y4j/arm64-v8a/configure_fingerprint.bin b/android/app/.cxx/Debug/5g696y4j/arm64-v8a/configure_fingerprint.bin index d65c2091..ea35e89f 100644 --- a/android/app/.cxx/Debug/5g696y4j/arm64-v8a/configure_fingerprint.bin +++ b/android/app/.cxx/Debug/5g696y4j/arm64-v8a/configure_fingerprint.bin @@ -2,27 +2,27 @@ C/C++ Structured Loga _ ]/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/arm64-v8a/additional_project_files.txtC A -?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  էȃ×2  ‹°™²Ö2^ +?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  Úðèû×2  ‹°™²Ö2^ \ -Z/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/arm64-v8a/android_gradle_build.json  էȃ×2¥ ‘°™²Ö2c +Z/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/arm64-v8a/android_gradle_build.json  Úðèû×2¥ ‘°™²Ö2c a -_/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/arm64-v8a/android_gradle_build_mini.json  էȃ×2² –°™²Ö2P +_/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/arm64-v8a/android_gradle_build_mini.json  Úðèû×2² –°™²Ö2P N -L/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/arm64-v8a/build.ninja  էȃ×2ŠÃ 쯙²Ö2T +L/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/arm64-v8a/build.ninja  Úðèû×2ŠÃ 쯙²Ö2T R -P/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/arm64-v8a/build.ninja.txt  ֧ȃ×2Y +P/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/arm64-v8a/build.ninja.txt  Úðèû×2Y W -U/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/arm64-v8a/build_file_index.txt  ֧ȃ×2 P —°™²Ö2Z +U/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/arm64-v8a/build_file_index.txt  Úðèû×2 P —°™²Ö2Z X -V/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/arm64-v8a/compile_commands.json  ֧ȃ×2^ +V/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/arm64-v8a/compile_commands.json  Úðèû×2^ \ -Z/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/arm64-v8a/compile_commands.json.bin  ֧ȃ×2 d +Z/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/arm64-v8a/compile_commands.json.bin  Úðèû×2 d b -`/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/arm64-v8a/metadata_generation_command.txt  ֧ȃ×2 +`/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/arm64-v8a/metadata_generation_command.txt  Úðèû×2 ÿ —°™²Ö2W U -S/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/arm64-v8a/prefab_config.json  ֧ȃ×2  ( —°™²Ö2\ +S/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/arm64-v8a/prefab_config.json  Úðèû×2  ( —°™²Ö2\ Z -X/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/arm64-v8a/symbol_folder_index.txt  ֧ȃ×2  O —°™²Ö2T +X/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/arm64-v8a/symbol_folder_index.txt  Úðèû×2  O —°™²Ö2T R -P/Users/alex/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt  ֧ȃ×2 ¤  ­ÑÚÏ2 \ No newline at end of file +P/Users/alex/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt  Ûðèû×2 ¤  ­ÑÚÏ2 \ No newline at end of file diff --git a/android/app/.cxx/Debug/5g696y4j/armeabi-v7a/configure_fingerprint.bin b/android/app/.cxx/Debug/5g696y4j/armeabi-v7a/configure_fingerprint.bin index 29ac93c5..4d332c4e 100644 --- a/android/app/.cxx/Debug/5g696y4j/armeabi-v7a/configure_fingerprint.bin +++ b/android/app/.cxx/Debug/5g696y4j/armeabi-v7a/configure_fingerprint.bin @@ -2,27 +2,27 @@ C/C++ Structured Logc a _/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/armeabi-v7a/additional_project_files.txtC A -?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  —©Èƒ×2  àòš²Ö2` +?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  íðèû×2  àòš²Ö2` ^ -\/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/armeabi-v7a/android_gradle_build.json  —©Èƒ×2© âòš²Ö2e +\/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/armeabi-v7a/android_gradle_build.json  íðèû×2© âòš²Ö2e c -a/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/armeabi-v7a/android_gradle_build_mini.json  —©Èƒ×2¶ ãòš²Ö2R +a/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/armeabi-v7a/android_gradle_build_mini.json  íðèû×2¶ ãòš²Ö2R P -N/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/armeabi-v7a/build.ninja  —©Èƒ×2–à Âòš²Ö2V +N/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/armeabi-v7a/build.ninja  íðèû×2–à Âòš²Ö2V T -R/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/armeabi-v7a/build.ninja.txt  —©Èƒ×2[ +R/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/armeabi-v7a/build.ninja.txt  íðèû×2[ Y -W/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/armeabi-v7a/build_file_index.txt  —©Èƒ×2 P ãòš²Ö2\ +W/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/armeabi-v7a/build_file_index.txt  íðèû×2 P ãòš²Ö2\ Z -X/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/armeabi-v7a/compile_commands.json  —©Èƒ×2` +X/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/armeabi-v7a/compile_commands.json  íðèû×2` ^ -\/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/armeabi-v7a/compile_commands.json.bin  —©Èƒ×2 f +\/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/armeabi-v7a/compile_commands.json.bin  íðèû×2 f d -b/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/armeabi-v7a/metadata_generation_command.txt  —©Èƒ×2 +b/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/armeabi-v7a/metadata_generation_command.txt  íðèû×2 ‰ ãòš²Ö2Y W -U/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/armeabi-v7a/prefab_config.json  —©Èƒ×2  ( ãòš²Ö2^ +U/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/armeabi-v7a/prefab_config.json  íðèû×2  ( ãòš²Ö2^ \ -Z/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/armeabi-v7a/symbol_folder_index.txt  —©Èƒ×2  Q ãòš²Ö2T +Z/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/armeabi-v7a/symbol_folder_index.txt  íðèû×2  Q ãòš²Ö2T R -P/Users/alex/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt  —©Èƒ×2 ¤  ­ÑÚÏ2 \ No newline at end of file +P/Users/alex/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt  íðèû×2 ¤  ­ÑÚÏ2 \ No newline at end of file diff --git a/android/app/.cxx/Debug/5g696y4j/x86/configure_fingerprint.bin b/android/app/.cxx/Debug/5g696y4j/x86/configure_fingerprint.bin index 12933496..36d33fe3 100644 --- a/android/app/.cxx/Debug/5g696y4j/x86/configure_fingerprint.bin +++ b/android/app/.cxx/Debug/5g696y4j/x86/configure_fingerprint.bin @@ -2,27 +2,27 @@ C/C++ Structured Log[ Y W/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86/additional_project_files.txtC A -?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  ¥©Èƒ×2  �÷š²Ö2X +?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  ôðèû×2  �÷š²Ö2X V -T/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86/android_gradle_build.json  ¥©Èƒ×2™ �÷š²Ö2] +T/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86/android_gradle_build.json  ôðèû×2™ �÷š²Ö2] [ -Y/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86/android_gradle_build_mini.json  ¥©Èƒ×2¦ ‘÷š²Ö2J +Y/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86/android_gradle_build_mini.json  ôðèû×2¦ ‘÷š²Ö2J H -F/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86/build.ninja  ¥©Èƒ×2æÂ †÷š²Ö2N +F/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86/build.ninja  ôðèû×2æÂ †÷š²Ö2N L -J/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86/build.ninja.txt  ¥©Èƒ×2S +J/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86/build.ninja.txt  ôðèû×2S Q -O/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86/build_file_index.txt  ¥©Èƒ×2 P ‘÷š²Ö2T +O/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86/build_file_index.txt  ôðèû×2 P ‘÷š²Ö2T R -P/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86/compile_commands.json  ¥©Èƒ×2X +P/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86/compile_commands.json  ôðèû×2X V -T/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86/compile_commands.json.bin  ¥©Èƒ×2 ^ +T/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86/compile_commands.json.bin  ôðèû×2 ^ \ -Z/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86/metadata_generation_command.txt  ¥©Èƒ×2 +Z/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86/metadata_generation_command.txt  ôðèû×2 á ‘÷š²Ö2Q O -M/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86/prefab_config.json  ¥©Èƒ×2  ( ‘÷š²Ö2V +M/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86/prefab_config.json  ôðèû×2  ( ‘÷š²Ö2V T -R/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86/symbol_folder_index.txt  ¥©Èƒ×2  I ‘÷š²Ö2T +R/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86/symbol_folder_index.txt  ôðèû×2  I ‘÷š²Ö2T R -P/Users/alex/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt  ¥©Èƒ×2 ¤  ­ÑÚÏ2 \ No newline at end of file +P/Users/alex/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt  ôðèû×2 ¤  ­ÑÚÏ2 \ No newline at end of file diff --git a/android/app/.cxx/Debug/5g696y4j/x86_64/configure_fingerprint.bin b/android/app/.cxx/Debug/5g696y4j/x86_64/configure_fingerprint.bin index e498da23..e41c5b64 100644 --- a/android/app/.cxx/Debug/5g696y4j/x86_64/configure_fingerprint.bin +++ b/android/app/.cxx/Debug/5g696y4j/x86_64/configure_fingerprint.bin @@ -2,27 +2,27 @@ C/C++ Structured Log^ \ Z/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86_64/additional_project_files.txtC A -?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  á©Èƒ×2  Üúš²Ö2[ +?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  úðèû×2  Üúš²Ö2[ Y -W/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86_64/android_gradle_build.json  á©Èƒ×2Ÿ Þúš²Ö2` +W/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86_64/android_gradle_build.json  úðèû×2Ÿ Þúš²Ö2` ^ -\/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86_64/android_gradle_build_mini.json  á©Èƒ×2¬ Þúš²Ö2M +\/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86_64/android_gradle_build_mini.json  úðèû×2¬ Þúš²Ö2M K -I/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86_64/build.ninja  á©Èƒ×2øÂ Ðúš²Ö2Q +I/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86_64/build.ninja  úðèû×2øÂ Ðúš²Ö2Q O -M/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86_64/build.ninja.txt  á©Èƒ×2V +M/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86_64/build.ninja.txt  úðèû×2V T -R/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86_64/build_file_index.txt  á©Èƒ×2 P ßúš²Ö2W +R/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86_64/build_file_index.txt  úðèû×2 P ßúš²Ö2W U -S/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86_64/compile_commands.json  á©Èƒ×2[ +S/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86_64/compile_commands.json  úðèû×2[ Y -W/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86_64/compile_commands.json.bin  á©Èƒ×2 a +W/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86_64/compile_commands.json.bin  úðèû×2 a _ -]/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86_64/metadata_generation_command.txt  á©Èƒ×2 +]/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86_64/metadata_generation_command.txt  úðèû×2 ð ßúš²Ö2T R -P/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86_64/prefab_config.json  á©Èƒ×2  ( ßúš²Ö2Y +P/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86_64/prefab_config.json  úðèû×2  ( ßúš²Ö2Y W -U/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86_64/symbol_folder_index.txt  á©Èƒ×2  L ßúš²Ö2T +U/Users/alex/eatvio_app/android/app/.cxx/Debug/5g696y4j/x86_64/symbol_folder_index.txt  úðèû×2  L ßúš²Ö2T R -P/Users/alex/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt  á©Èƒ×2 ¤  ­ÑÚÏ2 \ No newline at end of file +P/Users/alex/flutter/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt  úðèû×2 ¤  ­ÑÚÏ2 \ No newline at end of file diff --git a/lib/features/registration/presentation/pages/webview_registration_screen.dart b/lib/features/registration/presentation/pages/webview_registration_screen.dart index 5292ba61..54f4a199 100644 --- a/lib/features/registration/presentation/pages/webview_registration_screen.dart +++ b/lib/features/registration/presentation/pages/webview_registration_screen.dart @@ -1,6 +1,9 @@ +import 'dart:convert'; + import 'package:eatvio_app/core/const.dart'; +import 'package:eatvio_app/core/locator_service.dart'; +import 'package:eatvio_app/features/auth/presentation/bloc/auth_cubit.dart'; import 'package:flutter/material.dart'; -import 'package:go_router/go_router.dart'; import 'package:webview_flutter/webview_flutter.dart'; class WebViewRegistrationScreen extends StatefulWidget { @@ -12,23 +15,71 @@ class WebViewRegistrationScreen extends StatefulWidget { class _WebViewRegistrationScreenState extends State { late final WebViewController _controller; + late final AuthCubit authCubit; + String? email; + String? password; @override void initState() { super.initState(); + authCubit = sl(); _controller = WebViewController() ..setJavaScriptMode(JavaScriptMode.unrestricted) + ..addJavaScriptChannel( + 'flutter_inject', + onMessageReceived: (JavaScriptMessage message) { + final data = jsonDecode(message.message); + if (data['type'] == 'email') { + email = data['value']; + print("Email: $email"); + } else if (data['type'] == 'password') { + password = data['value']; + print("Password: $password"); + } + }, + ) ..setNavigationDelegate( NavigationDelegate( onNavigationRequest: (NavigationRequest request) { if (request.url.contains('profile')) { - GoRouter.of(context).go('authScreen'); + authCubit.getTokenByCredentials( + email!, + password!, + ); } return NavigationDecision.navigate; }, ), ) ..loadRequest(Uri.parse(baseUrl + '/registration/step1')); + + _injectJavaScript(); + } + + void _injectJavaScript() async { + await Future.delayed(Duration(seconds: 2)); + _controller.runJavaScript(''' + function sendMessageToFlutter(data) { + window.flutter_inject.postMessage(JSON.stringify(data)); + } + + function trackInputChanges() { + let emailField = document.getElementById('inputEmail'); + let passwordField = document.getElementById('inputPassword'); + + if (emailField && passwordField) { + emailField.addEventListener('input', function() { + sendMessageToFlutter({ type: 'email', value: emailField.value }); + }); + + passwordField.addEventListener('input', function() { + sendMessageToFlutter({ type: 'password', value: passwordField.value }); + }); + } + } + + trackInputChanges(); + '''); } @override From 8cca27cd76680fa56c1ca9dd959727810fea2119 Mon Sep 17 00:00:00 2001 From: BLoC Date: Mon, 10 Mar 2025 14:38:26 +0300 Subject: [PATCH 5/7] feat: auth success and error messaging --- lib/core/utils/toasts.dart | 9 +- .../auth/presentation/bloc/auth_cubit.dart | 3 + .../auth/presentation/pages/auth_screen.dart | 238 +++++++++--------- 3 files changed, 133 insertions(+), 117 deletions(-) diff --git a/lib/core/utils/toasts.dart b/lib/core/utils/toasts.dart index 7a0f3db9..3d4fda0d 100644 --- a/lib/core/utils/toasts.dart +++ b/lib/core/utils/toasts.dart @@ -1,4 +1,5 @@ import 'package:eatvio_app/core/theme/theme_helper.dart'; +import 'package:flutter/material.dart'; import 'package:fluttertoast/fluttertoast.dart'; const int _toastDuration = 2; @@ -19,10 +20,10 @@ void showErrorToast(String message) { Fluttertoast.showToast( msg: message, toastLength: Toast.LENGTH_LONG, - gravity: ToastGravity.TOP, + gravity: ToastGravity.CENTER, timeInSecForIosWeb: _toastDuration, - backgroundColor: appTheme.whiteA700, - textColor: appTheme.gray, + backgroundColor: appTheme.red, + textColor: Colors.white, fontSize: 16.0, ); } @@ -31,7 +32,7 @@ void showSuccessToast(String message) { Fluttertoast.showToast( msg: message, toastLength: Toast.LENGTH_SHORT, - gravity: ToastGravity.TOP, + gravity: ToastGravity.CENTER, timeInSecForIosWeb: _toastDuration, backgroundColor: appTheme.greenA70001, textColor: appTheme.whiteA700, diff --git a/lib/features/auth/presentation/bloc/auth_cubit.dart b/lib/features/auth/presentation/bloc/auth_cubit.dart index 924247d1..da1c3fef 100644 --- a/lib/features/auth/presentation/bloc/auth_cubit.dart +++ b/lib/features/auth/presentation/bloc/auth_cubit.dart @@ -1,6 +1,7 @@ import 'package:eatvio_app/core/app_router.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/features/auth/presentation/bloc/auth_state.dart'; import 'package:eatvio_app/features/auth/repositories/auth_repository.dart'; import 'package:eatvio_app/features/bottom_navigation_bar/presentation/bloc/profile_avatar_cubit/profile_avatar_cubit.dart'; @@ -28,11 +29,13 @@ class AuthCubit extends Cubit { token: token, ), ); + showSuccessToast('УÑ�пешный вход'); await TokenStorage.saveTokenInStorage(token); await sl().getMyProfile(); AppRouter.navigatorKey.currentContext?.go('/my-profile-screen'); } catch (e) { print(e); + showErrorToast('Ð�еверный адреÑ� Ñ�лектронной почты или пароль'); emit(AuthState.error(errorMessage: '$e')); } } diff --git a/lib/features/auth/presentation/pages/auth_screen.dart b/lib/features/auth/presentation/pages/auth_screen.dart index 0e1bce7a..bcaf2db6 100644 --- a/lib/features/auth/presentation/pages/auth_screen.dart +++ b/lib/features/auth/presentation/pages/auth_screen.dart @@ -2,9 +2,11 @@ import 'package:eatvio_app/core/const.dart'; import 'package:eatvio_app/core/locator_service.dart'; import 'package:eatvio_app/core/theme/theme_helper.dart'; import 'package:eatvio_app/core/utils/image_constant.dart'; +import 'package:eatvio_app/core/utils/toasts.dart'; import 'package:eatvio_app/core/widgets/custom_text_form_field.dart'; import 'package:eatvio_app/features/auth/presentation/bloc/auth_cubit.dart'; import 'package:eatvio_app/generated/l10n.dart'; +import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_native_splash/flutter_native_splash.dart'; @@ -12,6 +14,8 @@ import 'package:flutter_svg/flutter_svg.dart'; import 'package:go_router/go_router.dart'; import 'package:url_launcher/url_launcher.dart'; +import '../bloc/auth_state.dart'; + class AuthScreen extends StatefulWidget { const AuthScreen(); @@ -32,120 +36,128 @@ class _AuthScreenState extends State { FlutterNativeSplash.remove(); return BlocProvider( create: (BuildContext context) => authCubit, - child: Scaffold( - appBar: AppBar( - centerTitle: true, - title: SvgPicture.asset( - ImageConstant.imgLogoEatvio, - height: 64, - fit: BoxFit.contain, - ), - ), - body: SafeArea( - child: Padding( - padding: EdgeInsets.all(16), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text(s.email), - const SizedBox(height: 4), - CustomTextFormField( - controller: emailController, - textInputAction: TextInputAction.next, - keyboardType: TextInputType.emailAddress, - textInputType: TextInputType.emailAddress, - hintText: 'Введите email', - ), - const SizedBox(height: 16), - Text(s.password), - const SizedBox(height: 4), - CustomTextFormField( - obscureText: hidePassword, - controller: passwordController, - hintText: 'Введите пароль', - suffix: IconButton( - onPressed: () { - setState(() { - hidePassword = !hidePassword; - }); - }, - icon: Icon( - hidePassword ? Icons.visibility_outlined : Icons.visibility_off_outlined, - color: Colors.grey, - ), - ), - ), - const SizedBox(height: 16), - Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Text('Ð�ет аккаунта? '), - GestureDetector( - onTap: () => GoRouter.of(context).goNamed('webViewRegistrationScreen'), - child: Text( - 'ЗарегиÑ�трироватьÑ�Ñ�', - style: TextStyle( - color: appTheme.blueA400, - decorationColor: appTheme.blueA400, - decoration: TextDecoration.underline, - ), - ), - ), - ], - ), - Spacer(), - Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Text( - 'Ð�ажимаÑ� "Войти", Ð’Ñ‹ Ñ�оглашаетеÑ�ÑŒ Ñ� ', - style: TextStyle( - fontSize: 12, - ), - ), - GestureDetector( - onTap: () async { - await launchUrl(Uri.parse(baseUrl + '/oferta_bs.pdf')); - }, - child: Text( - 'Публичной офертой', - style: TextStyle( - fontSize: 12, - color: appTheme.blueA400, - decorationColor: appTheme.blueA400, - decoration: TextDecoration.underline, - ), - ), - ), - ], - ), - const SizedBox(height: 16), - Container( - height: 48, - width: MediaQuery.of(context).size.width - 32, - child: FloatingActionButton.extended( - heroTag: 'authButton', - highlightElevation: 0, - elevation: 0, - focusElevation: 0, - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular(20), - ), - backgroundColor: appTheme.blueA400, - onPressed: () => authCubit.getTokenByCredentials( - emailController.text, - passwordController.text, - ), - label: Text( - 'Войти', - style: theme.textTheme.titleSmall!.copyWith(color: Colors.white), - ), - ), - ), - ], + child: BlocBuilder( + builder: (BuildContext context, AuthState state) { + return Scaffold( + appBar: AppBar( + centerTitle: true, + title: SvgPicture.asset( + ImageConstant.imgLogoEatvio, + height: 64, + fit: BoxFit.contain, + ), ), - ), - ), + body: SafeArea( + child: Padding( + padding: EdgeInsets.all(16), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text(s.email), + const SizedBox(height: 4), + CustomTextFormField( + controller: emailController, + textInputAction: TextInputAction.next, + keyboardType: TextInputType.emailAddress, + textInputType: TextInputType.emailAddress, + hintText: 'Введите email', + ), + const SizedBox(height: 16), + Text(s.password), + const SizedBox(height: 4), + CustomTextFormField( + obscureText: hidePassword, + controller: passwordController, + hintText: 'Введите пароль', + suffix: IconButton( + onPressed: () { + setState(() { + hidePassword = !hidePassword; + }); + }, + icon: Icon( + hidePassword ? Icons.visibility_outlined : Icons.visibility_off_outlined, + color: Colors.grey, + ), + ), + ), + const SizedBox(height: 16), + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text('Ð�ет аккаунта? '), + GestureDetector( + onTap: () => GoRouter.of(context).goNamed('webViewRegistrationScreen'), + child: Text( + 'ЗарегиÑ�трироватьÑ�Ñ�', + style: TextStyle( + color: appTheme.blueA400, + decorationColor: appTheme.blueA400, + decoration: TextDecoration.underline, + ), + ), + ), + ], + ), + Spacer(), + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text( + 'Ð�ажимаÑ� "Войти", Ð’Ñ‹ Ñ�оглашаетеÑ�ÑŒ Ñ� ', + style: TextStyle( + fontSize: 12, + ), + ), + GestureDetector( + onTap: () async { + await launchUrl(Uri.parse(baseUrl + '/oferta_bs.pdf')); + }, + child: Text( + 'Публичной офертой', + style: TextStyle( + fontSize: 12, + color: appTheme.blueA400, + decorationColor: appTheme.blueA400, + decoration: TextDecoration.underline, + ), + ), + ), + ], + ), + const SizedBox(height: 16), + Container( + height: 48, + width: MediaQuery.of(context).size.width - 32, + child: FloatingActionButton.extended( + heroTag: 'authButton', + highlightElevation: 0, + elevation: 0, + focusElevation: 0, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(20), + ), + backgroundColor: state is AuthStateLoading ? Colors.black.withAlpha(50) : appTheme.blueA400, + onPressed: state is AuthStateLoading + ? null + : () => authCubit.getTokenByCredentials( + emailController.text, + passwordController.text, + ), + label: state is AuthStateLoading + ? CupertinoActivityIndicator() + : Text( + 'Войти', + style: theme.textTheme.titleSmall!.copyWith(color: Colors.white), + ), + ), + ), + ], + ), + ), + ), + ); + }, ), ); } From 3dea50b4c2b2770d2fe302093ba12606540478cd Mon Sep 17 00:00:00 2001 From: BLoC Date: Mon, 10 Mar 2025 14:39:31 +0300 Subject: [PATCH 6/7] feat: auth success and error messaging --- lib/features/auth/presentation/pages/auth_screen.dart | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/features/auth/presentation/pages/auth_screen.dart b/lib/features/auth/presentation/pages/auth_screen.dart index bcaf2db6..e446ece8 100644 --- a/lib/features/auth/presentation/pages/auth_screen.dart +++ b/lib/features/auth/presentation/pages/auth_screen.dart @@ -2,7 +2,6 @@ import 'package:eatvio_app/core/const.dart'; import 'package:eatvio_app/core/locator_service.dart'; import 'package:eatvio_app/core/theme/theme_helper.dart'; import 'package:eatvio_app/core/utils/image_constant.dart'; -import 'package:eatvio_app/core/utils/toasts.dart'; import 'package:eatvio_app/core/widgets/custom_text_form_field.dart'; import 'package:eatvio_app/features/auth/presentation/bloc/auth_cubit.dart'; import 'package:eatvio_app/generated/l10n.dart'; From 4cae752f8db0eec2bdb86b089b622e427e2c6f85 Mon Sep 17 00:00:00 2001 From: BLoC Date: Mon, 10 Mar 2025 15:46:09 +0300 Subject: [PATCH 7/7] feat: remove calendar, increase fontSize in comments, settings, blog posts and plans --- .DS_Store | Bin 10244 -> 10244 bytes assets/.DS_Store | Bin 6148 -> 6148 bytes lib/core/app_router.dart | 2 +- lib/core/locator_service.dart | 2 +- lib/core/token_storage.dart | 5 ++--- .../presentation/widgets/comments_widget.dart | 10 +++++----- .../presentation/widgets/plan_widget.dart | 4 ++-- .../menu/presentation/pages/menu_screen.dart | 12 ++++++------ .../widgets/profile_blog_post_widget.dart | 2 ++ .../presentation/pages/settings_screen.dart | 2 +- 10 files changed, 20 insertions(+), 19 deletions(-) diff --git a/.DS_Store b/.DS_Store index b237a450f14bf60bedd2561b8eb1898ef575efd1..50b6c093799f8145f1674ed47c7eb89c98032404 100644 GIT binary patch delta 803 zcmcgou}&L75S;;nZ4&Sr&IF?r2vbC&p`eW*jznTb$d?!)I|R(#d3{+}c2B!&6KLGf zrAb7SCLcfk2(R@(}?@TDL4l zTdIE}M7kFRh6-(e9yVGTEt zMg4sk8^4G#2HZL%*0B!ku~2NHo+39F0|Nsi1A_nqL;l97jf{&6n3=ReVyp~_45bVy44Dl1 zo;mr+NjdpRKvAGFMp+=O_a6)x7$);D=}NN#RV6dzGvqN8qp9tlti^PK!^q4)N5Rh zJqEHo17;Oa92i~B)qu~2NHo+3930|Nsi1A_nqL-EF_jf{*elg(IkC-<`K const AuthScreen(), routes: [ GoRoute( diff --git a/lib/core/locator_service.dart b/lib/core/locator_service.dart index 7e79faf4..d88e8746 100644 --- a/lib/core/locator_service.dart +++ b/lib/core/locator_service.dart @@ -167,7 +167,7 @@ Future init() async { sl.registerLazySingleton( () => Dio( BaseOptions( - baseUrl: baseUrl, + baseUrl: baseUrl, headers: { 'accept': 'application/json', 'content-type': 'application/json', diff --git a/lib/core/token_storage.dart b/lib/core/token_storage.dart index 5b28ffc7..a3eba6cc 100644 --- a/lib/core/token_storage.dart +++ b/lib/core/token_storage.dart @@ -1,12 +1,11 @@ import 'package:flutter_secure_storage/flutter_secure_storage.dart'; abstract class TokenStorage { - static Future haveTokenInStorage() async { try { if (await FlutterSecureStorage().read(key: 'token') == null) { return false; - } else { + } else { return true; } } catch (e) { @@ -17,7 +16,7 @@ abstract class TokenStorage { static Future getTokenFromStorage() async => await FlutterSecureStorage().read(key: 'token'); static saveTokenInStorage(String token) async { - await FlutterSecureStorage().write(key: 'token', value: token); + await FlutterSecureStorage().write(key: 'token', value: token); } static Future removeTokenInStorage() async => (await FlutterSecureStorage().delete(key: 'token')); diff --git a/lib/features/feed/presentation/widgets/comments_widget.dart b/lib/features/feed/presentation/widgets/comments_widget.dart index ac4ea977..d9e44fb3 100644 --- a/lib/features/feed/presentation/widgets/comments_widget.dart +++ b/lib/features/feed/presentation/widgets/comments_widget.dart @@ -72,7 +72,7 @@ class _CommentsWidgetState extends State { style: TextStyle( height: 1, color: appTheme.gray, - fontSize: 12, + fontSize: 14, fontWeight: FontWeight.w500, ), ), @@ -84,7 +84,7 @@ class _CommentsWidgetState extends State { style: TextStyle( height: 1, color: appTheme.black, - fontSize: 12, + fontSize: 16, fontWeight: FontWeight.w500, ), ), @@ -97,7 +97,7 @@ class _CommentsWidgetState extends State { style: TextStyle( height: 1, color: appTheme.gray, - fontSize: 12, + fontSize: 14, fontWeight: FontWeight.w500, ), ), @@ -112,8 +112,8 @@ class _CommentsWidgetState extends State { style: TextStyle( height: 1, color: appTheme.gray, - fontSize: 12, - fontWeight: FontWeight.w500, + fontSize: 14, + fontWeight: FontWeight.w600, ), ), ), diff --git a/lib/features/feed/presentation/widgets/plan_widget.dart b/lib/features/feed/presentation/widgets/plan_widget.dart index 3166aa96..5d3f5bda 100644 --- a/lib/features/feed/presentation/widgets/plan_widget.dart +++ b/lib/features/feed/presentation/widgets/plan_widget.dart @@ -102,7 +102,7 @@ class _PlanWidgetState extends State { padding: const EdgeInsets.symmetric(horizontal: 16), child: Text( widget.plan.name, - style: TextStyles.textMSemibold.copyWith(color: appTheme.black), + style: TextStyles.textMSemibold.copyWith(color: appTheme.black, fontSize: 18), ), ), if (widget.plan.details.isNotEmpty) ...[ @@ -117,7 +117,7 @@ class _PlanWidgetState extends State { "*": Style( margin: Margins.zero, color: appTheme.black, - fontSize: FontSize(TextStyles.textSMedium.fontSize ?? 14), + fontSize: FontSize(16), fontWeight: TextStyles.textSMedium.fontWeight ?? FontWeight.w400, ), }, diff --git a/lib/features/menu/presentation/pages/menu_screen.dart b/lib/features/menu/presentation/pages/menu_screen.dart index 7c359acb..73a3a358 100644 --- a/lib/features/menu/presentation/pages/menu_screen.dart +++ b/lib/features/menu/presentation/pages/menu_screen.dart @@ -69,12 +69,12 @@ class MenuScreen extends StatelessWidget { } }, ), - _divider(context), - _tile( - leading: 'assets/icons/calendar.svg', - title: 'Календарь', - onTap: () => GoRouter.of(context).push('/calendar-screen'), - ), + // _divider(context), + // _tile( + // leading: 'assets/icons/calendar.svg', + // title: 'Календарь', + // onTap: () => GoRouter.of(context).push('/calendar-screen'), + // ), _divider(context), _tile( leading: ImageConstant.icnGlossary, diff --git a/lib/features/profile/presentation/widgets/profile_blog_post_widget.dart b/lib/features/profile/presentation/widgets/profile_blog_post_widget.dart index dd1389bc..1b19f2b8 100644 --- a/lib/features/profile/presentation/widgets/profile_blog_post_widget.dart +++ b/lib/features/profile/presentation/widgets/profile_blog_post_widget.dart @@ -106,6 +106,7 @@ class _ProfileBlogPostWidgetState extends State { state.blogPosts[widget.index].title, style: TextStyle( fontWeight: FontWeight.w600, + fontSize: 18, color: Colors.black87, ), ), @@ -120,6 +121,7 @@ class _ProfileBlogPostWidgetState extends State { : state.blogPosts[widget.index].description, style: { "*": Style( + fontSize: FontSize(16), color: Colors.black87, ), }, diff --git a/lib/features/settings/presentation/pages/settings_screen.dart b/lib/features/settings/presentation/pages/settings_screen.dart index c7ac0a30..00ce51c0 100644 --- a/lib/features/settings/presentation/pages/settings_screen.dart +++ b/lib/features/settings/presentation/pages/settings_screen.dart @@ -420,7 +420,7 @@ class _SettingsScreenState extends State { title: Text( title, style: TextStyle( - fontSize: 14, + fontSize: 16, fontWeight: FontWeight.w500, height: 1, ),