TF-2116 Insert image at mouse cursor position
(cherry picked from commit cb347e5077eddb1366daf706aa87eb2291f71aab)
This commit is contained in:
@@ -10,11 +10,24 @@ class DownloadImageAsBase64Success extends UIState {
|
||||
final String base64Uri;
|
||||
final String cid;
|
||||
final FileInfo fileInfo;
|
||||
final bool fromFileShared;
|
||||
|
||||
DownloadImageAsBase64Success(this.base64Uri, this.cid, this.fileInfo);
|
||||
DownloadImageAsBase64Success(
|
||||
this.base64Uri,
|
||||
this.cid,
|
||||
this.fileInfo,
|
||||
{
|
||||
this.fromFileShared = false
|
||||
}
|
||||
);
|
||||
|
||||
@override
|
||||
List<Object?> get props => [base64Uri, cid, fileInfo];
|
||||
List<Object?> get props => [
|
||||
base64Uri,
|
||||
cid,
|
||||
fileInfo,
|
||||
fromFileShared,
|
||||
];
|
||||
}
|
||||
|
||||
class DownloadImageAsBase64Failure extends FeatureFailure {
|
||||
|
||||
@@ -7,18 +7,40 @@ class UploadAttachmentSuccess extends UIState {
|
||||
|
||||
final UploadAttachment uploadAttachment;
|
||||
final bool isInline;
|
||||
final bool fromFileShared;
|
||||
|
||||
UploadAttachmentSuccess(this.uploadAttachment, {this.isInline = false});
|
||||
UploadAttachmentSuccess(
|
||||
this.uploadAttachment,
|
||||
{
|
||||
this.isInline = false,
|
||||
this.fromFileShared = false,
|
||||
}
|
||||
);
|
||||
|
||||
@override
|
||||
List<Object?> get props => [uploadAttachment, isInline];
|
||||
List<Object?> get props => [
|
||||
uploadAttachment,
|
||||
isInline,
|
||||
fromFileShared,
|
||||
];
|
||||
}
|
||||
|
||||
class UploadAttachmentFailure extends FeatureFailure {
|
||||
final bool isInline;
|
||||
final bool fromFileShared;
|
||||
|
||||
UploadAttachmentFailure(dynamic exception, {this.isInline = false}) : super(exception: exception);
|
||||
UploadAttachmentFailure(
|
||||
dynamic exception,
|
||||
{
|
||||
this.isInline = false,
|
||||
this.fromFileShared = false,
|
||||
}
|
||||
) : super(exception: exception);
|
||||
|
||||
@override
|
||||
List<Object?> get props => [isInline, ...super.props];
|
||||
List<Object?> get props => [
|
||||
isInline,
|
||||
fromFileShared,
|
||||
...super.props
|
||||
];
|
||||
}
|
||||
@@ -10,24 +10,31 @@ class DownloadImageAsBase64Interactor {
|
||||
DownloadImageAsBase64Interactor(this._composerRepository);
|
||||
|
||||
Stream<Either<Failure, Success>> execute(
|
||||
String url,
|
||||
String cid,
|
||||
FileInfo fileInfo,
|
||||
{
|
||||
double? maxWidth,
|
||||
bool? compress
|
||||
}
|
||||
String url,
|
||||
String cid,
|
||||
FileInfo fileInfo,
|
||||
{
|
||||
double? maxWidth,
|
||||
bool? compress,
|
||||
bool fromFileShared = false,
|
||||
}
|
||||
) async* {
|
||||
try {
|
||||
yield Right<Failure, Success>(DownloadingImageAsBase64());
|
||||
final result = await _composerRepository.downloadImageAsBase64(
|
||||
url,
|
||||
url,
|
||||
cid,
|
||||
fileInfo,
|
||||
maxWidth: maxWidth,
|
||||
compress: compress
|
||||
);
|
||||
if (result?.isNotEmpty == true) {
|
||||
yield Right<Failure, Success>(DownloadImageAsBase64Success(
|
||||
result!,
|
||||
cid,
|
||||
fileInfo,
|
||||
maxWidth: maxWidth,
|
||||
compress: compress);
|
||||
if (result?.isNotEmpty == true) {
|
||||
yield Right<Failure, Success>(DownloadImageAsBase64Success(result!, cid, fileInfo));
|
||||
fromFileShared: fromFileShared
|
||||
));
|
||||
} else {
|
||||
yield Left<Failure, Success>(DownloadImageAsBase64Failure(null));
|
||||
}
|
||||
|
||||
@@ -15,7 +15,8 @@ class UploadAttachmentInteractor {
|
||||
FileInfo fileInfo,
|
||||
Uri uploadUri, {
|
||||
CancelToken? cancelToken,
|
||||
bool isInline = false
|
||||
bool isInline = false,
|
||||
bool fromFileShared = false,
|
||||
}) async* {
|
||||
try {
|
||||
final uploadAttachment = await _composerRepository.uploadAttachment(
|
||||
@@ -23,9 +24,17 @@ class UploadAttachmentInteractor {
|
||||
uploadUri,
|
||||
cancelToken: cancelToken
|
||||
);
|
||||
yield Right<Failure, Success>(UploadAttachmentSuccess(uploadAttachment, isInline: isInline));
|
||||
yield Right<Failure, Success>(UploadAttachmentSuccess(
|
||||
uploadAttachment,
|
||||
isInline: isInline,
|
||||
fromFileShared: fromFileShared
|
||||
));
|
||||
} catch (e) {
|
||||
yield Left<Failure, Success>(UploadAttachmentFailure(e, isInline: isInline));
|
||||
yield Left<Failure, Success>(UploadAttachmentFailure(
|
||||
e,
|
||||
isInline: isInline,
|
||||
fromFileShared: fromFileShared
|
||||
));
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user