TF-3502 Fix composer image loading icon
This commit is contained in:
@@ -256,7 +256,7 @@ class ComposerView extends GetWidget<ComposerController> {
|
||||
child: InsertImageLoadingBarWidget(
|
||||
uploadInlineViewState: controller.uploadController.uploadInlineViewState.value,
|
||||
viewState: controller.viewState.value,
|
||||
padding: ComposerStyle.insertImageLoadingBarPadding,
|
||||
margin: ComposerStyle.insertImageLoadingBarMargin,
|
||||
),
|
||||
)),
|
||||
Obx(() => Padding(
|
||||
@@ -435,7 +435,7 @@ class ComposerView extends GetWidget<ComposerController> {
|
||||
child: InsertImageLoadingBarWidget(
|
||||
uploadInlineViewState: controller.uploadController.uploadInlineViewState.value,
|
||||
viewState: controller.viewState.value,
|
||||
padding: ComposerStyle.insertImageLoadingBarPadding,
|
||||
margin: ComposerStyle.insertImageLoadingBarMargin,
|
||||
),
|
||||
)),
|
||||
Obx(() => Padding(
|
||||
|
||||
@@ -285,7 +285,7 @@ class ComposerView extends GetWidget<ComposerController> {
|
||||
child: Obx(() => InsertImageLoadingBarWidget(
|
||||
uploadInlineViewState: controller.uploadController.uploadInlineViewState.value,
|
||||
viewState: controller.viewState.value,
|
||||
padding: ComposerStyle.insertImageLoadingBarPadding,
|
||||
margin: ComposerStyle.insertImageLoadingBarMargin,
|
||||
)),
|
||||
),
|
||||
Obx(() {
|
||||
@@ -600,7 +600,7 @@ class ComposerView extends GetWidget<ComposerController> {
|
||||
child: Obx(() => InsertImageLoadingBarWidget(
|
||||
uploadInlineViewState: controller.uploadController.uploadInlineViewState.value,
|
||||
viewState: controller.viewState.value,
|
||||
padding: ComposerStyle.insertImageLoadingBarPadding,
|
||||
margin: ComposerStyle.insertImageLoadingBarMargin,
|
||||
)),
|
||||
),
|
||||
Obx(() {
|
||||
@@ -917,7 +917,7 @@ class ComposerView extends GetWidget<ComposerController> {
|
||||
child: Obx(() => InsertImageLoadingBarWidget(
|
||||
uploadInlineViewState: controller.uploadController.uploadInlineViewState.value,
|
||||
viewState: controller.viewState.value,
|
||||
padding: ComposerStyle.insertImageLoadingBarPadding,
|
||||
margin: ComposerStyle.insertImageLoadingBarMargin,
|
||||
)),
|
||||
),
|
||||
Obx(() {
|
||||
|
||||
@@ -41,7 +41,7 @@ class ComposerStyle {
|
||||
static const EdgeInsetsGeometry mobileSubjectPadding = EdgeInsetsDirectional.only(end: 16);
|
||||
static const EdgeInsetsGeometry mobileEditorPadding = EdgeInsetsDirectional.symmetric(horizontal: 12);
|
||||
static const EdgeInsetsGeometry popupItemPadding = EdgeInsetsDirectional.symmetric(horizontal: 12);
|
||||
static const EdgeInsetsGeometry insertImageLoadingBarPadding = EdgeInsetsDirectional.only(top: 12);
|
||||
static const EdgeInsetsGeometry insertImageLoadingBarMargin = EdgeInsetsDirectional.only(top: 12);
|
||||
|
||||
static const TextStyle popupItemTextStyle = TextStyle(
|
||||
color: Colors.black,
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user