diff --git a/android/.kotlin/sessions/kotlin-compiler-3965398408914680734.salive b/android/.kotlin/sessions/kotlin-compiler-3965398408914680734.salive deleted file mode 100644 index e69de29b..00000000 diff --git a/android/build/reports/problems/problems-report.html b/android/build/reports/problems/problems-report.html index f2f60fc9..f21ab9cc 100644 --- a/android/build/reports/problems/problems-report.html +++ b/android/build/reports/problems/problems-report.html @@ -650,7 +650,7 @@ code + .copy-button { diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties index efdcc4ac..f587a472 100644 --- a/android/gradle/wrapper/gradle-wrapper.properties +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.1-all.zip diff --git a/android/settings.gradle b/android/settings.gradle index 849ba91f..833c476b 100644 --- a/android/settings.gradle +++ b/android/settings.gradle @@ -20,7 +20,7 @@ plugins { id "dev.flutter.flutter-plugin-loader" version "1.0.0" id "com.android.application" version "8.7.3" apply false // START: FlutterFire Configuration - id "com.google.gms.google-services" version "4.3.15" apply false + id "com.google.gms.google-services" version "4.4.2" apply false // END: FlutterFire Configuration id "org.jetbrains.kotlin.android" version "2.0.21" apply false } diff --git a/assets/lottie_animations/loading.json b/assets/lottie_animations/loading.json new file mode 100644 index 00000000..a0ac541f --- /dev/null +++ b/assets/lottie_animations/loading.json @@ -0,0 +1 @@ +{"nm":"Main Scene","ddd":0,"h":500,"w":500,"meta":{"g":"@lottiefiles/creator 1.46.0"},"layers":[{"ty":0,"nm":"Nested Scene 1","sr":1,"st":0,"op":31,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[0,0]},"s":{"a":0,"k":[100,100]},"sk":{"a":0,"k":0},"p":{"a":0,"k":[0,0]},"r":{"a":0,"k":0},"sa":{"a":0,"k":0},"o":{"a":0,"k":100}},"w":500,"h":500,"refId":"precomp_newScene_abc3f55b-16ae-4191-8057-2b89484cea7e","ind":1},{"ty":4,"nm":"Слой_x0020_11","sr":1,"st":0,"op":31,"ip":0,"hd":false,"ln":"Слой_x0020_1","ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[2116.5,2116.5]},"s":{"a":0,"k":[10.7995,10.7995]},"sk":{"a":0,"k":0},"p":{"a":0,"k":[249.892,323.7606]},"r":{"a":0,"k":0},"sa":{"a":0,"k":0},"o":{"a":0,"k":100}},"shapes":[{"ty":"gr","bm":0,"ln":"_2456927096976","hd":false,"nm":"_2456927096976","it":[{"ty":"gr","bm":0,"hd":false,"nm":"Group 2","it":[{"ty":"sh","bm":0,"hd":false,"nm":"Path 11","d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[194,83],[145,154],[-70,66],[-67,-70],[-150,-64],[-164,0],[-150,65],[-112,119],[-71,-67],[67,-70],[194,-84],[211,0]],"o":[[-212,0],[-194,-84],[-67,-70],[71,-67],[112,119],[150,65],[163,0],[150,-64],[67,-70],[70,66],[-145,154],[-194,83],[0,0]],"v":[[2118,1902],[1504,1776],[990,1415],[997,1167],[1246,1174],[1643,1452],[2118,1550],[2592,1452],[2989,1174],[3238,1167],[3245,1415],[2731,1776],[2118,1902]]}}},{"ty":"fl","bm":0,"hd":false,"nm":"Fill","c":{"a":0,"k":[1,1,1]},"r":2,"o":{"a":0,"k":100}},{"ty":"tr","a":{"a":0,"k":[2117.50004629844,1510.5843947960868]},"s":{"a":0,"k":[100,100]},"sk":{"a":0,"k":0},"p":{"a":0,"k":[2117.50004629844,1510.5843947960868]},"r":{"a":0,"k":0},"sa":{"a":0,"k":0},"o":{"a":0,"k":100}}]},{"ty":"gr","bm":0,"hd":true,"nm":"Group 3","it":[{"ty":"sh","bm":0,"hd":false,"nm":"Path 12","d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,-882],[881,0],[0,881],[-882,0]],"o":[[881,0],[0,881],[-882,0],[0,-882],[0,0]],"v":[[2118,1],[3713,1270],[2118,2866],[522,1270],[2118,1]]}}},{"ty":"fl","bm":0,"hd":false,"nm":"Fill","c":{"a":0,"k":[0.2627,0.651,0.949]},"r":2,"o":{"a":0,"k":100}},{"ty":"tr","a":{"a":0,"k":[2117.5,1433.5000000000002]},"s":{"a":0,"k":[100,100]},"sk":{"a":0,"k":0},"p":{"a":0,"k":[2117.5,1433.5000000000002]},"r":{"a":0,"k":0},"sa":{"a":0,"k":0},"o":{"a":0,"k":100}}]},{"ty":"tr","a":{"a":0,"k":[2116.5000000000005,2116.5]},"s":{"a":0,"k":[100,100]},"sk":{"a":0,"k":0},"p":{"a":0,"k":[2116.5000000000005,2116.5]},"r":{"a":0,"k":0},"sa":{"a":0,"k":0},"o":{"a":0,"k":100}}]}],"ind":2},{"ty":4,"nm":"Слой_x0020_1","sr":1,"st":0,"op":31,"ip":0,"hd":false,"ln":"Слой_x0020_1","ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[2117.5,1433.4999999999998]},"s":{"a":1,"k":[{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[8.78118,8.78118],"t":0},{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[12,12],"t":15},{"s":[8.7812,8.7812],"t":30}]},"sk":{"a":0,"k":0},"p":{"a":0,"k":[249.99999499999998,250.00001499999996]},"r":{"a":1,"k":[{"o":{"x":0.167,"y":0.167},"i":{"x":0.833,"y":0.833},"s":[0],"t":0},{"s":[360],"t":30}]},"sa":{"a":0,"k":0},"o":{"a":0,"k":100}},"shapes":[{"ty":"gr","bm":0,"ln":"_2456927096976","hd":false,"nm":"_2456927096976","it":[{"ty":"gr","bm":0,"hd":true,"nm":"Group 2","it":[{"ty":"sh","bm":0,"hd":false,"nm":"Path 11","d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[194,83],[145,154],[-70,66],[-67,-70],[-150,-64],[-164,0],[-150,65],[-112,119],[-71,-67],[67,-70],[194,-84],[211,0]],"o":[[-212,0],[-194,-84],[-67,-70],[71,-67],[112,119],[150,65],[163,0],[150,-64],[67,-70],[70,66],[-145,154],[-194,83],[0,0]],"v":[[2118,1902],[1504,1776],[990,1415],[997,1167],[1246,1174],[1643,1452],[2118,1550],[2592,1452],[2989,1174],[3238,1167],[3245,1415],[2731,1776],[2118,1902]]}}},{"ty":"fl","bm":0,"hd":false,"nm":"Fill","c":{"a":0,"k":[1,1,1]},"r":2,"o":{"a":0,"k":100}},{"ty":"tr","a":{"a":0,"k":[2117.50004629844,1510.5843947960868]},"s":{"a":0,"k":[100,100]},"sk":{"a":0,"k":0},"p":{"a":0,"k":[2117.50004629844,1510.5843947960868]},"r":{"a":0,"k":0},"sa":{"a":0,"k":0},"o":{"a":0,"k":100}}]},{"ty":"gr","bm":0,"hd":false,"nm":"Group 3","it":[{"ty":"sh","bm":0,"hd":false,"nm":"Path 12","d":1,"ks":{"a":0,"k":{"c":true,"i":[[0,0],[0,-882],[881,0],[0,881],[-882,0]],"o":[[881,0],[0,881],[-882,0],[0,-882],[0,0]],"v":[[2118,1],[3713,1270],[2118,2866],[522,1270],[2118,1]]}}},{"ty":"fl","bm":0,"hd":false,"nm":"Fill","c":{"a":0,"k":[0.2627,0.651,0.949]},"r":2,"o":{"a":0,"k":100}},{"ty":"tr","a":{"a":0,"k":[2117.5,1433.5000000000002]},"s":{"a":0,"k":[100,100]},"sk":{"a":0,"k":0},"p":{"a":0,"k":[2117.5,1433.5000000000002]},"r":{"a":0,"k":0},"sa":{"a":0,"k":0},"o":{"a":0,"k":100}}]},{"ty":"tr","a":{"a":0,"k":[2117.5,1433.5000000000002]},"s":{"a":0,"k":[100,100]},"sk":{"a":0,"k":0},"p":{"a":0,"k":[2117.5,1433.5000000000002]},"r":{"a":0,"k":0},"sa":{"a":0,"k":0},"o":{"a":0,"k":100}}]}],"ind":3}],"v":"5.7.0","fr":30,"op":30,"ip":0,"assets":[{"nm":"Nested Scene 1","id":"precomp_newScene_abc3f55b-16ae-4191-8057-2b89484cea7e","layers":[]}]} \ No newline at end of file diff --git a/assets/rive_animations/loading.riv b/assets/rive_animations/loading.riv deleted file mode 100644 index d328f26d..00000000 Binary files a/assets/rive_animations/loading.riv and /dev/null differ diff --git a/lib/core/const.dart b/lib/core/const.dart index 31c47e9c..4f38a54e 100644 --- a/lib/core/const.dart +++ b/lib/core/const.dart @@ -1,5 +1,5 @@ -String baseUrl = 'https://eatvio.ru'; -// String baseUrl = 'https://dev2.eatvio.com'; +// String baseUrl = 'https://eatvio.ru'; +String baseUrl = 'https://dev2.eatvio.com'; const List durationValues = [7, 14, 21]; diff --git a/lib/core/widgets/custom_popup.dart b/lib/core/widgets/custom_popup.dart index 67d87da5..a23c03c6 100644 --- a/lib/core/widgets/custom_popup.dart +++ b/lib/core/widgets/custom_popup.dart @@ -120,14 +120,14 @@ class CustomPopup extends StatelessWidget { if (complainedContentType == ComplainedContent.diet) { final result = await sl().unpublishDiet(id!); if (!result) { - showErrorDialog(context, title: S.current.could_not_delete_blog_post); + showErrorDialog(context, title: "Не удалось снять диету с публикации"); return; } showSuccessToast('Диета перенесена в архив, обновите ленту'); } else if (complainedContentType == ComplainedContent.plan) { final result = await sl().unpublish(slug!); if (!result) { - showErrorDialog(context, title: S.current.could_not_delete_blog_post); + showErrorDialog(context, title: "Не удалось снять план с публикации"); return; } showSuccessToast('План перенесен в архив, обновите ленту'); diff --git a/lib/core/widgets/loader.dart b/lib/core/widgets/loader.dart index dd4727dc..ae69e10f 100644 --- a/lib/core/widgets/loader.dart +++ b/lib/core/widgets/loader.dart @@ -1,17 +1,19 @@ import 'package:flutter/material.dart'; -import 'package:rive/rive.dart'; +import 'package:lottie/lottie.dart'; class Loader extends StatelessWidget { const Loader({super.key}); @override Widget build(BuildContext context) { - return const Center( + return Center( child: SizedBox( - height: 32, - width: 32, - child: RiveAnimation.asset( - 'assets/rive_animations/loading.riv', + height: 42, + width: 42, + child: Lottie.asset( + 'assets/lottie_animations/loading.json', + width: 42, + height: 42, ), ), ); diff --git a/lib/features/registration/presentation/pages/verify_screen.dart b/lib/features/registration/presentation/pages/verify_screen.dart index 69fa009c..6059a0b5 100644 --- a/lib/features/registration/presentation/pages/verify_screen.dart +++ b/lib/features/registration/presentation/pages/verify_screen.dart @@ -1,5 +1,8 @@ import 'package:eatvio_app/core/const.dart'; +import 'package:eatvio_app/core/theme/theme_helper.dart'; import 'package:flutter/material.dart'; +import 'package:go_router/go_router.dart'; +import 'package:lottie/lottie.dart'; import 'package:webview_flutter/webview_flutter.dart'; class VerifyScreen extends StatefulWidget { @@ -22,6 +25,81 @@ class _VerifyScreenState extends State { super.initState(); _controller = WebViewController() ..setJavaScriptMode(JavaScriptMode.unrestricted) + ..setNavigationDelegate( + NavigationDelegate( + onNavigationRequest: (NavigationRequest request) async { + if (request.url.contains('user_detailz') && !request.url.contains('change-phone-verify') || request.url.contains('email/verify')) { + GoRouter.of(context).pop(); + await showModalBottomSheet( + useRootNavigator: true, + showDragHandle: true, + context: context, + builder: (context) => Container( + padding: const EdgeInsets.all(16), + width: MediaQuery.of(context).size.width, + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + const Text( + 'Номер телефона\nуспешно привязан', + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 20, + height: 1, + fontWeight: FontWeight.w600, + ), + ), + const SizedBox(height: 16), + Lottie.asset( + 'assets/lottie_animations/success.json', + width: 160, + height: 160, + ), + const SizedBox(height: 16), + const Text( + 'Теперь Вам доступен весь функционал!', + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 16, + height: 1, + fontWeight: FontWeight.w500, + ), + ), + const SizedBox(height: 16), + InkWell( + onTap: () { + Navigator.of(context).pop(); + GoRouter.of(context).pop(); + }, + child: Ink( + width: MediaQuery.of(context).size.width - 32, + height: 52, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(20), + color: appTheme.blueA400, + ), + child: const Center( + child: Text( + 'Закрыть', + style: TextStyle( + color: Colors.white, + fontSize: 18, + fontWeight: FontWeight.w600, + ), + ), + ), + ), + ), + ], + ), + ), + ); + return NavigationDecision.prevent; + } + return NavigationDecision.navigate; + }, + ), + ) ..loadRequest(Uri.parse('$baseUrl/login_with_pass_key?id=${widget.passKey}')); } diff --git a/pubspec.yaml b/pubspec.yaml index dff61dd4..3b1a20b4 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -47,7 +47,6 @@ dependencies: file_picker: ^10.1.9 audioplayers: ^6.4.0 intl: ^0.20.2 - rive: ^0.13.20 mask_text_input_formatter: ^2.9.0 lottie: ^3.3.1 flutter_portal: ^1.1.4 @@ -90,7 +89,6 @@ flutter: - assets/audio/ - assets/icons/ - assets/splash/ - - assets/rive_animations/ - assets/lottie_animations/ flutter_intl: