diff --git a/core/lib/presentation/views/button/tmail_button_widget.dart b/core/lib/presentation/views/button/tmail_button_widget.dart index 3b416a3a6..6bbd83ce1 100644 --- a/core/lib/presentation/views/button/tmail_button_widget.dart +++ b/core/lib/presentation/views/button/tmail_button_widget.dart @@ -37,6 +37,7 @@ class TMailButtonWidget extends StatelessWidget { final TextDirection iconAlignment; final int? maxLines; final MainAxisSize mainAxisSize; + final bool? isLoading; const TMailButtonWidget({ super.key, @@ -68,6 +69,7 @@ class TMailButtonWidget extends StatelessWidget { this.iconAlignment = TextDirection.ltr, this.maxLines, this.mainAxisSize = MainAxisSize.max, + this.isLoading = false, }); factory TMailButtonWidget.fromIcon({ @@ -287,13 +289,23 @@ class TMailButtonWidget extends StatelessWidget { softWrap: maxLines == 1 ? CommonTextStyle.defaultSoftWrap : null, ), SizedBox(width: iconSpace), - SvgPicture.asset( - icon!, - width: iconSize, - height: iconSize, - fit: BoxFit.fill, - colorFilter: iconColor?.asFilter() - ), + if (!isLoading!) + SvgPicture.asset( + icon!, + width: iconSize, + height: iconSize, + fit: BoxFit.fill, + colorFilter: iconColor?.asFilter() + ) + else + SizedBox( + width: iconSize, + height: iconSize, + child: const CircularProgressIndicator( + color: Colors.white, + strokeWidth: 2, + ) + ), ] ); } diff --git a/lib/features/composer/presentation/composer_view_web.dart b/lib/features/composer/presentation/composer_view_web.dart index f75b56191..f94564bbb 100644 --- a/lib/features/composer/presentation/composer_view_web.dart +++ b/lib/features/composer/presentation/composer_view_web.dart @@ -435,6 +435,7 @@ class ComposerView extends GetWidget { radius: ComposerStyle.popupMenuRadius ); }, + isSending: controller.isSendEmailLoading.value, )), ]); }, diff --git a/lib/features/composer/presentation/widgets/web/bottom_bar_composer_widget.dart b/lib/features/composer/presentation/widgets/web/bottom_bar_composer_widget.dart index d2855acef..8b3f6bc23 100644 --- a/lib/features/composer/presentation/widgets/web/bottom_bar_composer_widget.dart +++ b/lib/features/composer/presentation/widgets/web/bottom_bar_composer_widget.dart @@ -19,6 +19,7 @@ class BottomBarComposerWidget extends StatelessWidget { final VoidCallback saveToDraftAction; final VoidCallback sendMessageAction; final OnRequestReadReceiptAction? requestReadReceiptAction; + final bool? isSending; final _imagePaths = Get.find(); @@ -34,6 +35,7 @@ class BottomBarComposerWidget extends StatelessWidget { required this.saveToDraftAction, required this.sendMessageAction, this.requestReadReceiptAction, + this.isSending, }); @override @@ -126,7 +128,7 @@ class BottomBarComposerWidget extends StatelessWidget { ), const SizedBox(width: BottomBarComposerWidgetStyle.sendButtonSpace), TMailButtonWidget( - text: AppLocalizations.of(context).send, + text: isSending! ? AppLocalizations.of(context).sending : AppLocalizations.of(context).send, icon: _imagePaths.icSend, iconAlignment: TextDirection.rtl, padding: BottomBarComposerWidgetStyle.sendButtonPadding, @@ -136,6 +138,7 @@ class BottomBarComposerWidget extends StatelessWidget { backgroundColor: BottomBarComposerWidgetStyle.sendButtonBackgroundColor, borderRadius: BottomBarComposerWidgetStyle.sendButtonRadius, onTapActionCallback: sendMessageAction, + isLoading: isSending, ) ] ),