chore: move regeneration button down to toolbar
This commit is contained in:
parent
567b0450ba
commit
445ed0338d
5 changed files with 18 additions and 81 deletions
|
|
@ -16,7 +16,6 @@ import 'package:fluffychat/pangea/activity_sessions/activity_summary_widget.dart
|
|||
import 'package:fluffychat/pangea/bot/utils/bot_name.dart';
|
||||
import 'package:fluffychat/pangea/bot/widgets/bot_settings_language_icon.dart';
|
||||
import 'package:fluffychat/pangea/chat/extensions/custom_room_display_extension.dart';
|
||||
import 'package:fluffychat/pangea/chat/widgets/request_regeneration_button.dart';
|
||||
import 'package:fluffychat/pangea/common/widgets/pressable_button.dart';
|
||||
import 'package:fluffychat/pangea/common/widgets/shimmer_background.dart';
|
||||
import 'package:fluffychat/pangea/events/constants/pangea_event_types.dart';
|
||||
|
|
@ -822,20 +821,7 @@ class Message extends StatelessWidget {
|
|||
),
|
||||
],
|
||||
),
|
||||
)
|
||||
// #Pangea
|
||||
else if (canRefresh)
|
||||
RequestRegenerationButton(
|
||||
textColor:
|
||||
textColor,
|
||||
onPressed: () =>
|
||||
controller
|
||||
.requestRegeneration(
|
||||
event
|
||||
.eventId,
|
||||
),
|
||||
),
|
||||
// Pangea#
|
||||
],
|
||||
),
|
||||
),
|
||||
|
|
|
|||
|
|
@ -1,59 +0,0 @@
|
|||
import 'package:flutter/material.dart';
|
||||
|
||||
import 'package:fluffychat/l10n/l10n.dart';
|
||||
|
||||
class RequestRegenerationButton extends StatelessWidget {
|
||||
final Color textColor;
|
||||
final VoidCallback onPressed;
|
||||
|
||||
const RequestRegenerationButton({
|
||||
super.key,
|
||||
required this.textColor,
|
||||
required this.onPressed,
|
||||
});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Padding(
|
||||
padding: const EdgeInsets.only(
|
||||
bottom: 8.0,
|
||||
left: 16.0,
|
||||
right: 16.0,
|
||||
),
|
||||
child: TextButton(
|
||||
style: TextButton.styleFrom(
|
||||
padding: EdgeInsets.zero,
|
||||
minimumSize: const Size(
|
||||
0,
|
||||
0,
|
||||
),
|
||||
),
|
||||
onPressed: onPressed,
|
||||
child: Row(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
spacing: 4.0,
|
||||
children: [
|
||||
Icon(
|
||||
Icons.refresh,
|
||||
color: textColor.withAlpha(
|
||||
164,
|
||||
),
|
||||
size: 14,
|
||||
),
|
||||
Text(
|
||||
L10n.of(
|
||||
context,
|
||||
).requestRegeneration,
|
||||
style: TextStyle(
|
||||
color: textColor.withAlpha(
|
||||
164,
|
||||
),
|
||||
fontSize: 11,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
@ -10,7 +10,6 @@ import 'package:fluffychat/l10n/l10n.dart';
|
|||
import 'package:fluffychat/pages/chat/chat.dart';
|
||||
import 'package:fluffychat/pages/chat/events/message_content.dart';
|
||||
import 'package:fluffychat/pages/chat/events/reply_content.dart';
|
||||
import 'package:fluffychat/pangea/chat/widgets/request_regeneration_button.dart';
|
||||
import 'package:fluffychat/pangea/common/utils/async_state.dart';
|
||||
import 'package:fluffychat/pangea/common/widgets/error_indicator.dart';
|
||||
import 'package:fluffychat/pangea/events/extensions/pangea_event_extension.dart';
|
||||
|
|
@ -258,11 +257,6 @@ class OverlayMessage extends StatelessWidget {
|
|||
),
|
||||
],
|
||||
),
|
||||
)
|
||||
else if (canRefresh)
|
||||
RequestRegenerationButton(
|
||||
textColor: textColor,
|
||||
onPressed: () => controller.requestRegeneration(event.eventId),
|
||||
),
|
||||
],
|
||||
),
|
||||
|
|
|
|||
|
|
@ -29,7 +29,8 @@ enum SelectMode {
|
|||
translate(Icons.translate),
|
||||
practice(Symbols.fitness_center),
|
||||
emoji(Icons.add_reaction_outlined),
|
||||
speechTranslation(Icons.translate);
|
||||
speechTranslation(Icons.translate),
|
||||
requestRegenerate(Icons.replay);
|
||||
|
||||
final IconData icon;
|
||||
const SelectMode(this.icon);
|
||||
|
|
@ -46,6 +47,8 @@ enum SelectMode {
|
|||
return l10n.practice;
|
||||
case SelectMode.emoji:
|
||||
return l10n.emojiView;
|
||||
case SelectMode.requestRegenerate:
|
||||
return l10n.requestRegeneration;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -214,6 +217,12 @@ class SelectModeButtonsState extends State<SelectModeButtons> {
|
|||
if (updatedMode == SelectMode.speechTranslation) {
|
||||
await controller.fetchSpeechTranslation();
|
||||
}
|
||||
|
||||
if (updatedMode == SelectMode.requestRegenerate) {
|
||||
widget.controller.requestRegeneration(
|
||||
messageEvent.eventId,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> modeDisabled() async {
|
||||
|
|
@ -348,7 +357,13 @@ class SelectModeButtonsState extends State<SelectModeButtons> {
|
|||
Widget build(BuildContext context) {
|
||||
final theme = Theme.of(context);
|
||||
final modes = controller.readingAssistanceModes;
|
||||
final allModes = controller.allModes;
|
||||
final allModes = controller.allModes
|
||||
.where(
|
||||
(mode) =>
|
||||
mode != SelectMode.requestRegenerate ||
|
||||
messageEvent.eventId == widget.controller.refreshEventID,
|
||||
)
|
||||
.toList();
|
||||
return Material(
|
||||
type: MaterialType.transparency,
|
||||
child: SizedBox(
|
||||
|
|
|
|||
|
|
@ -113,6 +113,7 @@ class SelectModeController with LemmaEmojiSetter {
|
|||
SelectMode.translate,
|
||||
SelectMode.practice,
|
||||
SelectMode.emoji,
|
||||
SelectMode.requestRegenerate,
|
||||
];
|
||||
|
||||
static List<SelectMode> get _audioModes => [
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue