diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj
index 648ad30f..65f4f4f7 100644
--- a/ios/Runner.xcodeproj/project.pbxproj
+++ b/ios/Runner.xcodeproj/project.pbxproj
@@ -388,7 +388,7 @@
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
CODE_SIGN_IDENTITY = "Apple Distribution: ITVIO, OOO (VL68C36HYS)";
CODE_SIGN_STYLE = Manual;
- CURRENT_PROJECT_VERSION = 37;
+ CURRENT_PROJECT_VERSION = 38;
DEVELOPMENT_TEAM = VL68C36HYS;
ENABLE_BITCODE = NO;
FRAMEWORK_SEARCH_PATHS = (
@@ -538,7 +538,7 @@
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
CODE_SIGN_IDENTITY = "Apple Distribution: ITVIO, OOO (VL68C36HYS)";
CODE_SIGN_STYLE = Manual;
- CURRENT_PROJECT_VERSION = 37;
+ CURRENT_PROJECT_VERSION = 38;
DEVELOPMENT_TEAM = VL68C36HYS;
ENABLE_BITCODE = NO;
FRAMEWORK_SEARCH_PATHS = (
@@ -576,7 +576,7 @@
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
CODE_SIGN_IDENTITY = "Apple Distribution: ITVIO, OOO (VL68C36HYS)";
CODE_SIGN_STYLE = Manual;
- CURRENT_PROJECT_VERSION = 37;
+ CURRENT_PROJECT_VERSION = 38;
DEVELOPMENT_TEAM = VL68C36HYS;
ENABLE_BITCODE = NO;
FRAMEWORK_SEARCH_PATHS = (
diff --git a/ios/Runner/Info.plist b/ios/Runner/Info.plist
index 9284d469..72d42aff 100644
--- a/ios/Runner/Info.plist
+++ b/ios/Runner/Info.plist
@@ -21,7 +21,7 @@
CFBundleSignature
????
CFBundleVersion
- 37
+ 38
ITSAppUsesNonExemptEncryption
LSRequiresIPhoneOS
diff --git a/lib/features/blog_post/presentation/pages/blog_post_screen.dart b/lib/features/blog_post/presentation/pages/blog_post_screen.dart
index c254c479..aa4c82c2 100644
--- a/lib/features/blog_post/presentation/pages/blog_post_screen.dart
+++ b/lib/features/blog_post/presentation/pages/blog_post_screen.dart
@@ -242,7 +242,7 @@ class _BlogPostScreenState extends State {
if (blogPostState.blogPostModel?.description.isNotEmpty ?? false)
Padding(
padding: const EdgeInsets.symmetric(horizontal: 8),
- child: Html(data: blogPostState.blogPostModel?.description, style: {"*": Style(color: Colors.black87)}),
+ child: Html(data: blogPostState.blogPostModel?.description.replaceAll('\n', '
'), style: {"*": Style(color: Colors.black87)}),
),
const SizedBox(height: 8),
if (blogPostState.blogPostModel?.image.isNotEmpty ?? false)
diff --git a/lib/features/dev_tools/presentation/dev_tools_screen.dart b/lib/features/dev_tools/presentation/dev_tools_screen.dart
index 62dc7ef3..a4ff7730 100644
--- a/lib/features/dev_tools/presentation/dev_tools_screen.dart
+++ b/lib/features/dev_tools/presentation/dev_tools_screen.dart
@@ -1,6 +1,7 @@
import 'dart:io';
import 'package:dio/dio.dart';
+import 'package:eatvio_app/core/app_router.dart';
import 'package:eatvio_app/core/const.dart';
import 'package:eatvio_app/core/firebase_api.dart';
import 'package:eatvio_app/core/locator_service.dart';
@@ -170,7 +171,7 @@ class _DevToolsScreenContentState extends State {
// Show AlertDialog with error description
if (context.mounted) {
showDialog(
- context: context,
+ context: AppRouter.navigatorKey.currentContext!,
builder: (context) => AlertDialog(
title: const Text('Test Failed'),
content: SingleChildScrollView(child: Text(result.error ?? 'No error details.')),
@@ -192,7 +193,7 @@ class _DevToolsScreenContentState extends State {
// Show AlertDialog with error description
if (context.mounted) {
showDialog(
- context: context,
+ context: AppRouter.navigatorKey.currentContext!,
builder: (context) => AlertDialog(
title: const Text('Test Failed'),
content: SingleChildScrollView(child: Text('$e\n$stack')),
diff --git a/lib/features/feed/presentation/widgets/blog_post_widget.dart b/lib/features/feed/presentation/widgets/blog_post_widget.dart
index d8bff7c9..6479d0d9 100644
--- a/lib/features/feed/presentation/widgets/blog_post_widget.dart
+++ b/lib/features/feed/presentation/widgets/blog_post_widget.dart
@@ -156,9 +156,9 @@ class _BlogPostWidgetState extends State {
Padding(
padding: const EdgeInsets.symmetric(horizontal: 4),
child: Html(
- data: state.feedBlogPostList[widget.index].description.length > 200
+ data: (state.feedBlogPostList[widget.index].description.length > 200
? state.feedBlogPostList[widget.index].description.substring(0, 200)
- : state.feedBlogPostList[widget.index].description,
+ : state.feedBlogPostList[widget.index].description).replaceAll('\n', '
'),
style: {
"*": Style(
fontSize: FontSize(16),
diff --git a/lib/features/feed/presentation/widgets/diets_widget.dart b/lib/features/feed/presentation/widgets/diets_widget.dart
index dcc80666..34964d1a 100644
--- a/lib/features/feed/presentation/widgets/diets_widget.dart
+++ b/lib/features/feed/presentation/widgets/diets_widget.dart
@@ -131,7 +131,7 @@ class _DietsWidgetState extends State {
Padding(
padding: const EdgeInsets.symmetric(horizontal: 16),
child: Html(
- data: widget.diet.details.length > 200 ? '${widget.diet.details.substring(0, 200)}...' : widget.diet.details,
+ data: widget.diet.details.length > 200 ? '${widget.diet.details.substring(0, 200).replaceAll('\n', '
')}...' : widget.diet.details.replaceAll('\n', '
'),
style: {
"*": Style(
margin: Margins.zero,
diff --git a/lib/features/feed/presentation/widgets/plan_widget.dart b/lib/features/feed/presentation/widgets/plan_widget.dart
index ea130f7e..588d61d0 100644
--- a/lib/features/feed/presentation/widgets/plan_widget.dart
+++ b/lib/features/feed/presentation/widgets/plan_widget.dart
@@ -137,7 +137,7 @@ class _PlanWidgetState extends State {
Padding(
padding: const EdgeInsets.symmetric(horizontal: 16),
child: Html(
- data: widget.plan.details.length > 200 ? '${widget.plan.details.substring(0, 200)}...' : widget.plan.details,
+ data: widget.plan.details.length > 200 ? '${widget.plan.details.substring(0, 200).replaceAll('\n', '
')}...' : widget.plan.details.replaceAll('\n', '
'),
style: {
"*": Style(
margin: Margins.zero,
diff --git a/lib/features/feed/presentation/widgets/recipes_widget.dart b/lib/features/feed/presentation/widgets/recipes_widget.dart
index ffe36b25..7720c6cd 100644
--- a/lib/features/feed/presentation/widgets/recipes_widget.dart
+++ b/lib/features/feed/presentation/widgets/recipes_widget.dart
@@ -164,7 +164,9 @@ class _RecipesWidgetState extends State {
Padding(
padding: const EdgeInsets.symmetric(horizontal: 16),
child: Html(
- data: widget.recipe.description.length > 200 ? widget.recipe.description.substring(0, 200) : widget.recipe.description,
+ data: widget.recipe.description.length > 200
+ ? widget.recipe.description.substring(0, 200).replaceAll('\n', '
')
+ : widget.recipe.description.replaceAll('\n', '
'),
style: {
"*": Style(
color: appTheme.black,
diff --git a/lib/features/my_diets/presentation/widgets/my_diet_widget.dart b/lib/features/my_diets/presentation/widgets/my_diet_widget.dart
index 3ca732f8..965bd088 100644
--- a/lib/features/my_diets/presentation/widgets/my_diet_widget.dart
+++ b/lib/features/my_diets/presentation/widgets/my_diet_widget.dart
@@ -89,7 +89,7 @@ class _MyDietWidgetState extends State {
Padding(
padding: const EdgeInsets.symmetric(horizontal: 16),
child: Html(
- data: widget.diet.details.length > 200 ? '${widget.diet.details.substring(0, 200)}...' : widget.diet.details,
+ data: widget.diet.details.length > 200 ? '${widget.diet.details.substring(0, 200).replaceAll('\n', '
')}...' : widget.diet.details.replaceAll('\n', '
'),
style: {
"*": Style(
margin: Margins.zero,
diff --git a/lib/features/my_plans/presentation/widgets/my_plan_widget.dart b/lib/features/my_plans/presentation/widgets/my_plan_widget.dart
index 9a49ea9a..ce91acdc 100644
--- a/lib/features/my_plans/presentation/widgets/my_plan_widget.dart
+++ b/lib/features/my_plans/presentation/widgets/my_plan_widget.dart
@@ -87,7 +87,7 @@ class _MyPlanWidgetState extends State {
Padding(
padding: const EdgeInsets.symmetric(horizontal: 16),
child: Html(
- data: widget.plan.details.length > 200 ? '${widget.plan.details.substring(0, 200)}...' : widget.plan.details,
+ data: widget.plan.details.length > 200 ? '${widget.plan.details.substring(0, 200).replaceAll('\n', '
')}...' : widget.plan.details.replaceAll('\n', '
'),
style: {
"*": Style(
margin: Margins.zero,
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 11ce16d1..0f0408d8 100644
--- a/lib/features/profile/presentation/widgets/profile_blog_post_widget.dart
+++ b/lib/features/profile/presentation/widgets/profile_blog_post_widget.dart
@@ -128,8 +128,8 @@ class _ProfileBlogPostWidgetState extends State {
padding: const EdgeInsets.symmetric(horizontal: 4),
child: Html(
data: state.blogPosts[widget.index].description.length > 200
- ? state.blogPosts[widget.index].description.substring(0, 200)
- : state.blogPosts[widget.index].description,
+ ? state.blogPosts[widget.index].description.substring(0, 200).replaceAll('\n', '
')
+ : state.blogPosts[widget.index].description.replaceAll('\n', '
'),
style: {
"*": Style(
fontSize: FontSize(16),
diff --git a/lib/features/recipe/presentation/widgets/my_recipe_widget.dart b/lib/features/recipe/presentation/widgets/my_recipe_widget.dart
index 060285dd..2610ca13 100644
--- a/lib/features/recipe/presentation/widgets/my_recipe_widget.dart
+++ b/lib/features/recipe/presentation/widgets/my_recipe_widget.dart
@@ -111,7 +111,9 @@ class _MyRecipeWidgetState extends State {
Padding(
padding: const EdgeInsets.symmetric(horizontal: 16),
child: Html(
- data: widget.recipe.description.length > 200 ? '${widget.recipe.description.substring(0, 200)}...' : widget.recipe.description,
+ data: widget.recipe.description.length > 200
+ ? '${widget.recipe.description.substring(0, 200).replaceAll('\n', '
')}...'
+ : widget.recipe.description.replaceAll('\n', '
'),
style: {
"*": Style(
margin: Margins.zero,
diff --git a/pubspec.yaml b/pubspec.yaml
index d11956ec..cdc5881d 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -1,6 +1,6 @@
name: eatvio_app
description: A new Flutter project.
-version: 1.1.14+44
+version: 1.1.15+45
publish_to: 'none'
environment:
@@ -16,19 +16,19 @@ dependencies:
flutter_secure_storage: ^9.2.4
flutter_bloc: ^9.1.1
cached_network_image: ^3.4.1
- flutter_svg: ^2.1.0
+ flutter_svg: ^2.2.0
equatable: ^2.0.7
freezed_annotation: ^3.0.0
json_annotation: ^4.9.0
validators: ^3.0.0
path_provider: ^2.1.5
- carousel_slider_plus: ^7.1.0
+ carousel_slider_plus: ^7.1.1
flutter_form_builder: ^10.0.1
image_picker: ^1.1.2
flutter_typeahead: ^5.2.0
- go_router: ^15.2.3
+ go_router: ^16.0.0
keyboard_dismisser: ^3.0.0
- retrofit: ^4.4.2
+ retrofit: ^4.5.0
get_it: ^8.0.3
dio: ^5.8.0+1
dart_pusher_channels: ^1.2.3
@@ -38,14 +38,14 @@ dependencies:
easy_debounce: ^2.0.3
badges: ^3.1.2
google_fonts: ^6.2.1
- syncfusion_flutter_charts: ^30.1.37
- syncfusion_flutter_gauges: ^30.1.37
+ syncfusion_flutter_charts: ^30.1.38
+ syncfusion_flutter_gauges: ^30.1.38
table_calendar: ^3.2.0
flutter_keyboard_visibility: ^6.0.0
share_plus: ^11.0.0
flutter_html: ^3.0.0
- file_picker: ^10.1.9
- audioplayers: ^6.4.0
+ file_picker: ^10.2.0
+ audioplayers: ^6.5.0
intl: ^0.20.2
mask_text_input_formatter: ^2.9.0
lottie: ^3.3.1
@@ -54,27 +54,27 @@ dependencies:
flutter_rating_bar: ^4.0.1
flutter_image_compress: ^2.4.0
image: ^4.5.4
- dotted_border: ^3.0.1
+ dotted_border: ^3.1.0
http: ^1.4.0
flutter_native_splash: ^2.4.6
- webview_flutter: ^4.12.0
- sentry_flutter: ^8.14.2
+ webview_flutter: ^4.13.0
+ sentry_flutter: ^9.2.0
connectivity_plus: ^6.1.4
visibility_detector: ^0.4.0+2
- firebase_core: ^3.13.1
- firebase_messaging: ^15.2.6
+ firebase_core: ^3.15.0
+ firebase_messaging: ^15.2.8
http_parser: ^4.1.2
path: ^1.9.1
collection: ^1.19.1
shared_preferences: ^2.5.3
version: ^3.0.2
package_info_plus: ^8.3.0
- device_info_plus: ^11.4.0
+ device_info_plus: ^11.5.0
permission_handler: ^12.0.0+1
qr_code_scanner_plus: ^2.0.10+1
dev_dependencies:
- build_runner: ^2.4.15
+ build_runner: ^2.5.4
freezed: ^3.0.6
json_serializable: ^6.9.5
retrofit_generator: ^9.2.0
@@ -83,7 +83,7 @@ dev_dependencies:
flutter_test:
sdk: flutter
- flutter_lints: ^6.0.0
+ flutter_lints: ^5.0.0
flutter:
uses-material-design: true