image cropper added
This commit is contained in:
parent
4fedb89cc0
commit
7d2ee16c42
|
|
@ -1,11 +1,10 @@
|
||||||
import 'dart:io';
|
|
||||||
|
|
||||||
import 'package:didvan/config/theme_data.dart';
|
import 'package:didvan/config/theme_data.dart';
|
||||||
import 'package:didvan/constants/app_icons.dart';
|
import 'package:didvan/constants/app_icons.dart';
|
||||||
import 'package:didvan/models/enums.dart';
|
import 'package:didvan/models/enums.dart';
|
||||||
import 'package:didvan/models/view/alert_data.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/providers/user_provider.dart';
|
||||||
|
import 'package:didvan/routes/routes.dart';
|
||||||
import 'package:didvan/services/media/media.dart';
|
import 'package:didvan/services/media/media.dart';
|
||||||
import 'package:didvan/utils/action_sheet.dart';
|
import 'package:didvan/utils/action_sheet.dart';
|
||||||
import 'package:didvan/widgets/didvan/card.dart';
|
import 'package:didvan/widgets/didvan/card.dart';
|
||||||
|
|
@ -24,8 +23,6 @@ class ProfilePhoto extends StatefulWidget {
|
||||||
}
|
}
|
||||||
|
|
||||||
class _ProfilePhotoState extends State<ProfilePhoto> {
|
class _ProfilePhotoState extends State<ProfilePhoto> {
|
||||||
File? profileImage;
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
final userProvider = context.watch<UserProvider>();
|
final userProvider = context.watch<UserProvider>();
|
||||||
|
|
@ -50,6 +47,7 @@ class _ProfilePhotoState extends State<ProfilePhoto> {
|
||||||
),
|
),
|
||||||
if (userProvider.user.photo != null)
|
if (userProvider.user.photo != null)
|
||||||
SkeletonImage(
|
SkeletonImage(
|
||||||
|
key: GlobalKey(debugLabel: userProvider.user.photo),
|
||||||
imageUrl: userProvider.user.photo!,
|
imageUrl: userProvider.user.photo!,
|
||||||
width: 96,
|
width: 96,
|
||||||
height: 96,
|
height: 96,
|
||||||
|
|
@ -113,15 +111,26 @@ class _ProfilePhotoState extends State<ProfilePhoto> {
|
||||||
ActionSheetUtils.pop();
|
ActionSheetUtils.pop();
|
||||||
final pickedFile = await MediaService.pickImage(source: source);
|
final pickedFile = await MediaService.pickImage(source: source);
|
||||||
if (pickedFile != null) {
|
if (pickedFile != null) {
|
||||||
final state = context.read<UserProvider>();
|
ActionSheetUtils.showLogoLoadingIndicator();
|
||||||
final result = await state.setProfilePhoto(pickedFile);
|
final bytes = await pickedFile.readAsBytes();
|
||||||
ActionSheetUtils.showAlert(
|
ActionSheetUtils.pop();
|
||||||
AlertData(
|
Navigator.of(context).pushNamed(
|
||||||
message: result
|
Routes.imageCropper,
|
||||||
? 'تصویر پروفایل بارگذاری شد.'
|
arguments: {
|
||||||
: 'بارگذاری تصویر موفقیت آمیز نبود.',
|
'bytes': bytes,
|
||||||
aLertType: result ? ALertType.success : ALertType.error,
|
'onCropped': () async {
|
||||||
),
|
final state = context.read<UserProvider>();
|
||||||
|
final result = await state.setProfilePhoto(pickedFile);
|
||||||
|
ActionSheetUtils.showAlert(
|
||||||
|
AlertData(
|
||||||
|
message: result
|
||||||
|
? 'تصویر پروفایل بارگذاری شد.'
|
||||||
|
: 'بارگذاری تصویر موفقیت آمیز نبود.',
|
||||||
|
aLertType: result ? ALertType.success : ALertType.error,
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
},
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue