TF-3502 Fix composer image loading icon
This commit is contained in:
@@ -5,12 +5,12 @@ class CircleLoadingWidget extends StatelessWidget {
|
||||
|
||||
final double? size;
|
||||
final double? strokeWidth;
|
||||
final EdgeInsetsGeometry? padding;
|
||||
final EdgeInsetsGeometry? margin;
|
||||
|
||||
const CircleLoadingWidget({
|
||||
super.key,
|
||||
this.size,
|
||||
this.padding,
|
||||
this.margin,
|
||||
this.strokeWidth,
|
||||
});
|
||||
|
||||
@@ -20,7 +20,7 @@ class CircleLoadingWidget extends StatelessWidget {
|
||||
final loadingStrokeWidth = strokeWidth ?? CircleLoadingWidgetStyles.width;
|
||||
|
||||
return Container(
|
||||
padding: padding,
|
||||
margin: margin,
|
||||
width: loadingSize,
|
||||
height: loadingSize,
|
||||
child: CircularProgressIndicator(
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
+2
-2
@@ -24,7 +24,7 @@ class IdentityLoadingWidget extends StatelessWidget {
|
||||
(failure) => const SizedBox.shrink(),
|
||||
(success) {
|
||||
if (success is GetAllIdentitiesLoading || success is GetSessionLoading) {
|
||||
return const CircleLoadingWidget(padding: EdgeInsets.all(16.0));
|
||||
return const CircleLoadingWidget(margin: EdgeInsets.all(16.0));
|
||||
} else {
|
||||
return const SizedBox.shrink();
|
||||
}
|
||||
@@ -34,7 +34,7 @@ class IdentityLoadingWidget extends StatelessWidget {
|
||||
(failure) => const SizedBox.shrink(),
|
||||
(success) {
|
||||
if (success is GetAllIdentitiesLoading || success is GetSessionLoading) {
|
||||
return const CircleLoadingWidget(padding: EdgeInsets.all(16.0));
|
||||
return const CircleLoadingWidget(margin: EdgeInsets.all(16.0));
|
||||
} else {
|
||||
return const SizedBox.shrink();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user