PR edits, minus positioning changes
This commit is contained in:
parent
3d9000d2ae
commit
19b20efc53
11 changed files with 72 additions and 68 deletions
|
|
@ -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#
|
||||
|
|
|
|||
|
|
@ -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(
|
||||
|
|
|
|||
|
|
@ -317,11 +317,6 @@ class MessageContent extends StatelessWidget {
|
|||
pangeaMessageEvent != null &&
|
||||
!(toolbarController!.highlighted) &&
|
||||
!selected) {
|
||||
// #Pangea
|
||||
// toolbarController!.controller.onSelectMessage(
|
||||
// pangeaMessageEvent!.event,
|
||||
// );
|
||||
// Pangea#
|
||||
return;
|
||||
}
|
||||
toolbarController?.toolbar?.textSelection
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
51
lib/pangea/widgets/chat/message_selection_overlay.dart
Normal file
51
lib/pangea/widgets/chat/message_selection_overlay.dart
Normal 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),
|
||||
],
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue