diff --git a/lib/features/composer/presentation/model/image_source.dart b/lib/features/composer/presentation/model/image_source.dart new file mode 100644 index 000000000..6c2cbf3d2 --- /dev/null +++ b/lib/features/composer/presentation/model/image_source.dart @@ -0,0 +1,5 @@ + +enum ImageSource { + local, + network +} \ No newline at end of file diff --git a/lib/features/composer/presentation/model/inline_image.dart b/lib/features/composer/presentation/model/inline_image.dart new file mode 100644 index 000000000..1650dd184 --- /dev/null +++ b/lib/features/composer/presentation/model/inline_image.dart @@ -0,0 +1,37 @@ + +import 'package:core/presentation/extensions/html_extension.dart'; +import 'package:equatable/equatable.dart'; +import 'package:model/model.dart'; +import 'package:tmail_ui_user/features/composer/presentation/model/image_source.dart'; + +class InlineImage with EquatableMixin { + final ImageSource source; + final String? link; + final FileInfo? fileInfo; + final String? cid; + final String? base64; + + InlineImage( + this.source, + { + this.link, + this.fileInfo, + this.cid, + this.base64, + } + ); + + Future generateImgTagHtml({double? maxWithEditor}) async { + if (source == ImageSource.local && base64 != null) { + return base64!.generateImageBase64( + cid!, + fileInfo!.fileExtension, + fileInfo!.fileName, + maxWithEditor: maxWithEditor); + } + return ''; + } + + @override + List get props => [source, link, fileInfo, cid]; +} \ No newline at end of file