addRefDetailAttachment function

Future<void> addRefDetailAttachment({
  1. required dynamic context,
  2. required dynamic ref,
  3. required dynamic manager,
  4. required dynamic refDetails,
})

Implementation

Future<void> addRefDetailAttachment({
  required BuildContext context,
  required WidgetRef ref,
  required AttachmentsManager manager,
  required RefDetails refDetails,
}) async {
  final lang = L10n.of(context);
  EasyLoading.show(status: lang.sendingAttachment);
  try {
    List<AttachmentDraft> drafts = [];
    final attachmentDraft = await manager.referenceDraft(refDetails);
    drafts.add(attachmentDraft);
    for (final draft in drafts) {
      final res = await draft.send();
      _log.info('attachment sent: $res');
    }

    await autosubscribe(ref: ref, objectId: manager.objectIdStr(), lang: lang);
    EasyLoading.dismiss();
  } catch (e, s) {
    _log.severe('Failed to create attachments', e, s);
    if (!context.mounted) {
      EasyLoading.dismiss();
      return;
    }
    EasyLoading.showError(
      lang.errorSendingAttachment(e),
      duration: const Duration(seconds: 3),
    );
  }
}