PR edits, minus positioning changes

This commit is contained in:
Kelrap 2024-08-06 13:19:40 -04:00
parent 3d9000d2ae
commit 19b20efc53
11 changed files with 72 additions and 68 deletions

View file

@ -16,6 +16,7 @@ class ChatEmojiPicker extends StatelessWidget {
final ThemeData theme = Theme.of(context);
return
// #Pangea
// Emoji picker can't display without a material parent
Material(
child:
// Pangea#
@ -41,6 +42,8 @@ class ChatEmojiPicker extends StatelessWidget {
Expanded(
child:
// #Pangea
// Display the button to close the emoji picker
// over the emoji picker
Stack(
children: [
// Pangea#

View file

@ -34,21 +34,6 @@ class ChatView extends StatelessWidget {
const ChatView(this.controller, {super.key});
// #Pangea
List<Widget> _editedAppBarActions(BuildContext context) {
if (!controller.selectMode) {
return [
ChatSettingsPopupMenu(
controller.room,
(!controller.room.isDirectChat && !controller.room.isArchived),
),
];
} else {
return [];
}
}
// Pangea#
List<Widget> _appBarActions(BuildContext context) {
if (controller.selectMode) {
return [
@ -234,10 +219,7 @@ class ChatView extends StatelessWidget {
),
titleSpacing: 0,
title: ChatAppBarTitle(controller),
// #Pangea
// actions: _appBarActions(context),
actions: _editedAppBarActions(context),
// Pangea#
actions: _appBarActions(context),
bottom: PreferredSize(
preferredSize: Size.fromHeight(appbarBottomHeight),
child: Column(

View file

@ -317,11 +317,6 @@ class MessageContent extends StatelessWidget {
pangeaMessageEvent != null &&
!(toolbarController!.highlighted) &&
!selected) {
// #Pangea
// toolbarController!.controller.onSelectMessage(
// pangeaMessageEvent!.event,
// );
// Pangea#
return;
}
toolbarController?.toolbar?.textSelection

View file

@ -1,11 +1,10 @@
import 'package:flutter/material.dart';
import 'package:emoji_proposal/emoji_proposal.dart';
import 'package:matrix/matrix.dart';
import 'package:fluffychat/config/app_config.dart';
import 'package:fluffychat/config/app_emojis.dart';
import 'package:fluffychat/pages/chat/chat.dart';
import 'package:flutter/material.dart';
import 'package:matrix/matrix.dart';
import '../../config/themes.dart';
class ReactionsPicker extends StatelessWidget {
@ -16,10 +15,13 @@ class ReactionsPicker extends StatelessWidget {
@override
Widget build(BuildContext context) {
if (controller.showEmojiPicker) return const SizedBox.shrink();
final display = controller.editEvent == null &&
controller.replyEvent == null &&
final display =
// #Pangea
// controller.editEvent == null &&
// controller.replyEvent == null &&
// Pangea#
controller.room.canSendDefaultMessages &&
controller.selectedEvents.isNotEmpty;
controller.selectedEvents.isNotEmpty;
return AnimatedContainer(
duration: FluffyThemes.animationDuration,
curve: FluffyThemes.animationCurve,

View file

@ -62,7 +62,7 @@ class PangeaAnyState {
}
void closeAllOverlays() {
while (entries.isNotEmpty) {
for (int i = 0; i < entries.length; i++) {
try {
entries.last.remove();
} catch (err, s) {

View file

@ -0,0 +1,51 @@
import 'package:fluffychat/pages/chat/chat.dart';
import 'package:fluffychat/pangea/widgets/chat/overlay_footer.dart';
import 'package:fluffychat/pangea/widgets/chat/overlay_header.dart';
import 'package:flutter/material.dart';
class MessageSelectionOverlay extends StatelessWidget {
final ChatController controller;
final Function closeToolbar;
final Widget toolbar;
final Widget overlayMessage;
const MessageSelectionOverlay({
required this.controller,
required this.closeToolbar,
required this.toolbar,
required this.overlayMessage,
super.key,
});
@override
Widget build(BuildContext context) {
return Column(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
mainAxisSize: MainAxisSize.max,
children: [
OverlayHeader(
controller: controller,
closeToolbar: closeToolbar,
),
const SizedBox(
height: 7,
),
Flexible(
child: Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
toolbar,
const SizedBox(height: 9),
overlayMessage,
],
),
),
const SizedBox(
height: 7,
),
OverlayFooter(controller: controller),
],
);
}
}

View file

@ -8,12 +8,11 @@ import 'package:fluffychat/pangea/matrix_event_wrappers/pangea_message_event.dar
import 'package:fluffychat/pangea/utils/error_handler.dart';
import 'package:fluffychat/pangea/utils/overlay.dart';
import 'package:fluffychat/pangea/widgets/chat/message_audio_card.dart';
import 'package:fluffychat/pangea/widgets/chat/message_selection_overlay.dart';
import 'package:fluffychat/pangea/widgets/chat/message_speech_to_text_card.dart';
import 'package:fluffychat/pangea/widgets/chat/message_text_selection.dart';
import 'package:fluffychat/pangea/widgets/chat/message_translation_card.dart';
import 'package:fluffychat/pangea/widgets/chat/message_unsubscribed_card.dart';
import 'package:fluffychat/pangea/widgets/chat/overlay_footer.dart';
import 'package:fluffychat/pangea/widgets/chat/overlay_header.dart';
import 'package:fluffychat/pangea/widgets/chat/overlay_message.dart';
import 'package:fluffychat/pangea/widgets/igc/word_data_card.dart';
import 'package:fluffychat/pangea/widgets/practice_activity/practice_activity_card.dart';
@ -93,33 +92,11 @@ class ToolbarDisplayController {
Widget overlayEntry;
if (toolbar == null) return;
try {
overlayEntry = Column(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
mainAxisSize: MainAxisSize.max,
children: [
OverlayHeader(
controller: controller,
closeToolbar: closeToolbar,
),
const SizedBox(
height: 7,
),
Flexible(
child: Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
toolbar!,
const SizedBox(height: 9),
overlayMessage,
],
),
),
const SizedBox(
height: 7,
),
OverlayFooter(controller: controller),
],
overlayEntry = MessageSelectionOverlay(
controller: controller,
closeToolbar: closeToolbar,
toolbar: toolbar!,
overlayMessage: overlayMessage,
);
} catch (err) {
debugger(when: kDebugMode);

View file

@ -4,8 +4,6 @@ import 'package:fluffychat/pages/chat/chat_input_row.dart';
import 'package:fluffychat/pages/chat/reactions_picker.dart';
import 'package:flutter/material.dart';
enum _EventContextAction { info, report }
class OverlayFooter extends StatelessWidget {
ChatController controller;

View file

@ -5,8 +5,6 @@ import 'package:flutter/material.dart';
import 'package:flutter_gen/gen_l10n/l10n.dart';
import 'package:matrix/matrix.dart';
enum _EventContextAction { info, report }
class OverlayHeader extends StatelessWidget {
ChatController controller;
Function closeToolbar;

View file

@ -90,6 +90,7 @@ class OverlayMessage extends StatelessWidget {
);
return Flexible(
// Make overlay message scrollable so long messages don't run offscreen
child: SingleChildScrollView(
child: Material(
color: noBubble ? Colors.transparent : color,

View file

@ -143,9 +143,6 @@ class PangeaRichTextState extends State<PangeaRichText> {
(e) => e.eventId == widget.pangeaMessageEvent.eventId,
) ??
false)) {
// widget.toolbarController?.controller.onSelectMessage(
// widget.pangeaMessageEvent.event,
// );
return;
}
widget.toolbarController?.toolbar?.textSelection