diff --git a/lib/pages/chat/chat.dart b/lib/pages/chat/chat.dart index 283d959e3..2ec60e9e4 100644 --- a/lib/pages/chat/chat.dart +++ b/lib/pages/chat/chat.dart @@ -377,7 +377,7 @@ class ChatController extends State if (evt is KeyDownEvent) { // #Pangea // send(); - onInputBarSubmitted(''); + onInputBarSubmitted(); // Pangea# } return KeyEventResult.handled; @@ -1756,7 +1756,7 @@ class ChatController extends State // #Pangea // void onInputBarSubmitted(String _) { - Future onInputBarSubmitted(String _) async { + Future onInputBarSubmitted() async { // send(); try { await choreographer.send(); diff --git a/lib/pages/chat/chat_input_row.dart b/lib/pages/chat/chat_input_row.dart index 03f6727f7..10dd2ca23 100644 --- a/lib/pages/chat/chat_input_row.dart +++ b/lib/pages/chat/chat_input_row.dart @@ -278,7 +278,10 @@ class ChatInputRow extends StatelessWidget { AppConfig.sendOnEnter == true && PlatformInfos.isMobile ? TextInputAction.send : null, - onSubmitted: controller.onInputBarSubmitted, + // #Pangea + // onSubmitted: controller.onInputBarSubmitted, + onSubmitted: (_) => controller.onInputBarSubmitted(), + // Pangea# onSubmitImage: controller.sendImageFromClipBoard, focusNode: controller.inputFocus, controller: controller.sendController, diff --git a/lib/pangea/chat/widgets/pangea_chat_input_row.dart b/lib/pangea/chat/widgets/pangea_chat_input_row.dart index e829f1381..232d500a9 100644 --- a/lib/pangea/chat/widgets/pangea_chat_input_row.dart +++ b/lib/pangea/chat/widgets/pangea_chat_input_row.dart @@ -195,7 +195,7 @@ class PangeaChatInputRow extends StatelessWidget { PlatformInfos.isMobile ? TextInputAction.send : null, - onSubmitted: controller.onInputBarSubmitted, + onSubmitted: (_) => controller.onInputBarSubmitted(), onSubmitImage: controller.sendImageFromClipBoard, focusNode: controller.inputFocus, controller: controller.sendController, @@ -240,7 +240,7 @@ class PangeaChatInputRow extends StatelessWidget { child: const Icon(Icons.mic_none_outlined), ) : ChoreographerSendButton( - choreographer: controller.choreographer, + controller: controller, ), ), ], diff --git a/lib/pangea/choreographer/widgets/send_button.dart b/lib/pangea/choreographer/widgets/send_button.dart index 1abeda11a..7ae996220 100644 --- a/lib/pangea/choreographer/widgets/send_button.dart +++ b/lib/pangea/choreographer/widgets/send_button.dart @@ -1,50 +1,28 @@ import 'package:flutter/material.dart'; import 'package:fluffychat/l10n/l10n.dart'; -import 'package:fluffychat/pangea/choreographer/controllers/choreographer.dart'; +import 'package:fluffychat/pages/chat/chat.dart'; import 'package:fluffychat/pangea/choreographer/controllers/extensions/choreographer_state_extension.dart'; -import 'package:fluffychat/pangea/choreographer/controllers/extensions/choreographer_ui_extension.dart'; import 'package:fluffychat/pangea/choreographer/enums/assistance_state_enum.dart'; -import 'package:fluffychat/pangea/choreographer/widgets/igc/paywall_card.dart'; -import 'package:fluffychat/pangea/common/utils/overlay.dart'; class ChoreographerSendButton extends StatelessWidget { - final Choreographer choreographer; + final ChatController controller; const ChoreographerSendButton({ super.key, - required this.choreographer, + required this.controller, }); Future _onPressed(BuildContext context) async { - choreographer.onClickSend(); - try { - await choreographer.send(); - } on ShowPaywallException { - PaywallCard.show( - context, - choreographer.inputTransformTargetKey, - ); - } on OpenMatchesException { - if (choreographer.firstOpenMatch != null) { - if (choreographer.firstOpenMatch!.updatedMatch.isITStart) { - choreographer.openIT(choreographer.firstOpenMatch!); - } else { - OverlayUtil.showIGCMatch( - choreographer.firstOpenMatch!, - choreographer, - context, - ); - } - } - } + controller.choreographer.onClickSend(); + controller.onInputBarSubmitted(); } @override Widget build(BuildContext context) { return ListenableBuilder( listenable: Listenable.merge([ - choreographer.textController, - choreographer.isFetching, + controller.sendController, + controller.choreographer.isFetching, ]), builder: (context, _) { return Container( @@ -52,8 +30,9 @@ class ChoreographerSendButton extends StatelessWidget { alignment: Alignment.center, child: IconButton( icon: const Icon(Icons.send_outlined), - color: choreographer.assistanceState.sendButtonColor(context), - onPressed: choreographer.isFetching.value + color: controller.choreographer.assistanceState + .sendButtonColor(context), + onPressed: controller.choreographer.isFetching.value ? null : () => _onPressed(context), tooltip: L10n.of(context).send,