uploadAvatar function
Future<void>
uploadAvatar( - dynamic ref,
- dynamic context,
- String roomId
)
Implementation
Future<void> uploadAvatar(
WidgetRef ref,
BuildContext context,
String roomId,
) async {
final room = await ref.read(maybeRoomProvider(roomId).future);
if (room == null || !context.mounted) return;
FilePickerResult? result = await pickAvatar(context: context);
if (result == null || result.files.isEmpty) return;
try {
if (!context.mounted) return;
EasyLoading.show(status: L10n.of(context).avatarUploading);
final file = result.files.first;
if (file.path != null) await room.uploadAvatar(file.path!);
// close loading
EasyLoading.dismiss();
} catch (e, s) {
_log.severe('Failed to upload avatar', e, s);
if (!context.mounted) {
EasyLoading.dismiss();
return;
}
EasyLoading.showError(
L10n.of(context).failedToUploadAvatar(e),
duration: const Duration(seconds: 3),
);
}
}