diff --git a/lib/pages/home/settings/profile/widgets/profile_photo.dart b/lib/pages/home/settings/profile/widgets/profile_photo.dart index 87940d9..3b307ee 100644 --- a/lib/pages/home/settings/profile/widgets/profile_photo.dart +++ b/lib/pages/home/settings/profile/widgets/profile_photo.dart @@ -1,11 +1,10 @@ -import 'dart:io'; - import 'package:didvan/config/theme_data.dart'; import 'package:didvan/constants/app_icons.dart'; import 'package:didvan/models/enums.dart'; import 'package:didvan/models/view/alert_data.dart'; -import 'package:didvan/pages/home/settings/widgets/menu_item.dart'; +import 'package:didvan/pages/home/widgets/menu_item.dart'; import 'package:didvan/providers/user_provider.dart'; +import 'package:didvan/routes/routes.dart'; import 'package:didvan/services/media/media.dart'; import 'package:didvan/utils/action_sheet.dart'; import 'package:didvan/widgets/didvan/card.dart'; @@ -24,8 +23,6 @@ class ProfilePhoto extends StatefulWidget { } class _ProfilePhotoState extends State { - File? profileImage; - @override Widget build(BuildContext context) { final userProvider = context.watch(); @@ -50,6 +47,7 @@ class _ProfilePhotoState extends State { ), if (userProvider.user.photo != null) SkeletonImage( + key: GlobalKey(debugLabel: userProvider.user.photo), imageUrl: userProvider.user.photo!, width: 96, height: 96, @@ -113,15 +111,26 @@ class _ProfilePhotoState extends State { ActionSheetUtils.pop(); final pickedFile = await MediaService.pickImage(source: source); if (pickedFile != null) { - final state = context.read(); - final result = await state.setProfilePhoto(pickedFile); - ActionSheetUtils.showAlert( - AlertData( - message: result - ? 'تصویر پروفایل بارگذاری شد.' - : 'بارگذاری تصویر موفقیت آمیز نبود.', - aLertType: result ? ALertType.success : ALertType.error, - ), + ActionSheetUtils.showLogoLoadingIndicator(); + final bytes = await pickedFile.readAsBytes(); + ActionSheetUtils.pop(); + Navigator.of(context).pushNamed( + Routes.imageCropper, + arguments: { + 'bytes': bytes, + 'onCropped': () async { + final state = context.read(); + final result = await state.setProfilePhoto(pickedFile); + ActionSheetUtils.showAlert( + AlertData( + message: result + ? 'تصویر پروفایل بارگذاری شد.' + : 'بارگذاری تصویر موفقیت آمیز نبود.', + aLertType: result ? ALertType.success : ALertType.error, + ), + ); + } + }, ); } }