Files
workavia-mail-front/lib/features/composer/presentation/extensions/file_upload_extension.dart
T
dab246 14047c9ccc TF-2245 Fix upload attachment when token expired on web
Signed-off-by: dab246 <tdvu@linagora.com>
(cherry picked from commit 0b2ab3c6ff4213bccc064822e640cc40592a39e8)
2023-10-27 11:18:29 +07:00

43 lines
1.0 KiB
Dart

import 'dart:convert' as convert;
import 'dart:typed_data' as type_data;
import 'package:flutter/foundation.dart';
import 'package:html_editor_enhanced/utils/file_upload_model.dart';
import 'package:model/upload/file_info.dart';
extension FileUploadExtension on FileUpload {
String? get base64Data {
if (base64 != null) {
if (!base64!.contains(',')) {
return base64;
}
final listData = base64!.split(',');
if (listData.length < 2) {
return base64;
}
final base64Origin = listData[1];
return base64Origin;
}
return base64;
}
Future<FileInfo?> toFileInfo() async {
if (base64Data != null) {
final bytes = await compute(convertBase64ToBytes, base64Data!);
return FileInfo.fromBytes(
bytes: bytes,
name: name,
size: size
);
} else {
return null;
}
}
static Uint8List convertBase64ToBytes(String base64) {
type_data.Uint8List decodeBytes = convert.base64Decode(base64);
return decodeBytes;
}
}