TF-3502 Fix composer image loading icon

This commit is contained in:
DatDang
2025-03-11 15:32:00 +07:00
committed by Dat H. Pham
parent 0bd1ab7e5d
commit a5679b3346
6 changed files with 29 additions and 17 deletions
@@ -1,8 +1,8 @@
import 'package:core/presentation/extensions/color_extension.dart';
import 'package:core/presentation/state/failure.dart';
import 'package:core/presentation/state/success.dart';
import 'package:dartz/dartz.dart';
import 'package:flutter/material.dart';
import 'package:tmail_ui_user/features/base/widget/circle_loading_widget.dart';
import 'package:tmail_ui_user/features/composer/domain/state/download_image_as_base64_state.dart';
import 'package:tmail_ui_user/features/upload/domain/state/attachment_upload_state.dart';
@@ -10,27 +10,36 @@ class InsertImageLoadingBarWidget extends StatelessWidget {
final Either<Failure, Success> viewState;
final Either<Failure, Success> uploadInlineViewState;
final EdgeInsetsGeometry? padding;
final EdgeInsetsGeometry? margin;
const InsertImageLoadingBarWidget({
super.key,
required this.viewState,
required this.uploadInlineViewState,
this.padding,
this.margin,
});
@override
Widget build(BuildContext context) {
return uploadInlineViewState.fold(
final child = uploadInlineViewState.fold(
(failure) => _viewStateToUI(viewState),
(success) {
if (success is UploadingAttachmentUploadState) {
return CircleLoadingWidget(padding: padding);
return const LinearProgressIndicator(
color: AppColor.primaryColor,
backgroundColor: AppColor.colorBgMailboxSelected,
);
} else {
return _viewStateToUI(viewState);
}
}
);
return Container(
height: 2,
padding: const EdgeInsets.symmetric(horizontal: 16),
child: child,
);
}
Widget _viewStateToUI(Either<Failure, Success> viewState) {
@@ -38,7 +47,10 @@ class InsertImageLoadingBarWidget extends StatelessWidget {
(failure) => const SizedBox.shrink(),
(success) {
if (success is DownloadingImageAsBase64) {
return CircleLoadingWidget(padding: padding);
return const LinearProgressIndicator(
color: AppColor.primaryColor,
backgroundColor: AppColor.colorBgMailboxSelected,
);
} else {
return const SizedBox.shrink();
}