reorder options in chat header

pull/1476/head
ggurdin 1 year ago
parent 7525acfa05
commit 7beb14dfaf
No known key found for this signature in database
GPG Key ID: A01CB41737CBB478

@ -550,7 +550,13 @@ class MessageOverlayController extends State<MessageSelectionOverlay>
messageOffset!.dy - messageOffset!.dy -
messageSize!.height - messageSize!.height -
belowMessageHeight, belowMessageHeight,
child: overlayMessage, child: Padding(
padding: EdgeInsets.only(
left: horizontalPadding,
right: horizontalPadding,
),
child: overlayMessage,
),
) )
: AnimatedBuilder( : AnimatedBuilder(
animation: _overlayPositionAnimation!, animation: _overlayPositionAnimation!,
@ -564,39 +570,33 @@ class MessageOverlayController extends State<MessageSelectionOverlay>
}, },
); );
return Padding( return Stack(
padding: EdgeInsets.only( children: [
left: horizontalPadding, positionedOverlayMessage,
right: horizontalPadding, Align(
), alignment: Alignment.bottomCenter,
child: Stack( child: Row(
children: [ mainAxisSize: MainAxisSize.min,
positionedOverlayMessage, children: [
Align( Expanded(
alignment: Alignment.bottomCenter, child: Column(
child: Row( mainAxisSize: MainAxisSize.min,
mainAxisSize: MainAxisSize.min, children: [
children: [ OverlayFooter(controller: widget.chatController),
Expanded( ],
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
OverlayFooter(controller: widget.chatController),
],
),
), ),
if (showDetails) ),
const SizedBox( if (showDetails)
width: FluffyThemes.columnWidth, const SizedBox(
), width: FluffyThemes.columnWidth,
], ),
), ],
),
Material(
child: OverlayHeader(controller: widget.chatController),
), ),
], ),
), Material(
child: OverlayHeader(controller: widget.chatController),
),
],
); );
} }
} }

@ -1,7 +1,7 @@
import 'package:fluffychat/pages/chat/chat.dart'; import 'package:fluffychat/pages/chat/chat.dart';
import 'package:fluffychat/pages/chat/chat_app_bar_title.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart';
import 'package:material_symbols_icons/symbols.dart';
import 'package:matrix/matrix.dart'; import 'package:matrix/matrix.dart';
class OverlayHeader extends StatelessWidget { class OverlayHeader extends StatelessWidget {
@ -21,21 +21,12 @@ class OverlayHeader extends StatelessWidget {
actionsIconTheme: IconThemeData( actionsIconTheme: IconThemeData(
color: Theme.of(context).colorScheme.primary, color: Theme.of(context).colorScheme.primary,
), ),
leading: IconButton(
icon: const Icon(Icons.close),
onPressed: controller.clearSelectedEvents,
tooltip: L10n.of(context)!.close,
color: Theme.of(context).colorScheme.primary,
),
titleSpacing: 0,
title: ChatAppBarTitle(controller),
actions: [ actions: [
if (controller.canEditSelectedEvents) IconButton(
IconButton( icon: const Icon(Symbols.forward),
icon: const Icon(Icons.edit_outlined), tooltip: L10n.of(context)!.forward,
tooltip: L10n.of(context)!.edit, onPressed: controller.forwardEventsAction,
onPressed: controller.editSelectedEventAction, ),
),
if (controller.selectedEvents.length == 1 && if (controller.selectedEvents.length == 1 &&
controller.selectedEvents.single.messageType == controller.selectedEvents.single.messageType ==
MessageTypes.Text) MessageTypes.Text)
@ -44,27 +35,30 @@ class OverlayHeader extends StatelessWidget {
tooltip: L10n.of(context)!.copy, tooltip: L10n.of(context)!.copy,
onPressed: controller.copyEventsAction, onPressed: controller.copyEventsAction,
), ),
if (controller.canSaveSelectedEvent)
// Use builder context to correctly position the share dialog on iPad
Builder(
builder: (context) => IconButton(
icon: Icon(Icons.adaptive.share),
tooltip: L10n.of(context)!.share,
onPressed: () => controller.saveSelectedEvent(context),
),
),
if (controller.canPinSelectedEvents) if (controller.canPinSelectedEvents)
IconButton( IconButton(
icon: const Icon(Icons.push_pin_outlined), icon: const Icon(Icons.push_pin_outlined),
onPressed: controller.pinEvent, onPressed: controller.pinEvent,
tooltip: L10n.of(context)!.pinMessage, tooltip: L10n.of(context)!.pinMessage,
), ),
if (controller.canEditSelectedEvents)
IconButton(
icon: const Icon(Icons.edit_outlined),
tooltip: L10n.of(context)!.edit,
onPressed: controller.editSelectedEventAction,
),
if (controller.canRedactSelectedEvents) if (controller.canRedactSelectedEvents)
IconButton( IconButton(
icon: const Icon(Icons.delete_outlined), icon: const Icon(Icons.delete_outlined),
tooltip: L10n.of(context)!.redactMessage, tooltip: L10n.of(context)!.redactMessage,
onPressed: controller.redactEventsAction, onPressed: controller.redactEventsAction,
), ),
if (controller.selectedEvents.length == 1)
IconButton(
icon: const Icon(Icons.shield_outlined),
tooltip: L10n.of(context)!.reportMessage,
onPressed: controller.reportEventAction,
),
if (controller.selectedEvents.length == 1) if (controller.selectedEvents.length == 1)
IconButton( IconButton(
icon: const Icon(Icons.info_outlined), icon: const Icon(Icons.info_outlined),
@ -74,12 +68,6 @@ class OverlayHeader extends StatelessWidget {
controller.clearSelectedEvents(); controller.clearSelectedEvents();
}, },
), ),
if (controller.selectedEvents.length == 1)
IconButton(
icon: const Icon(Icons.shield_outlined),
tooltip: L10n.of(context)!.reportMessage,
onPressed: controller.reportEventAction,
),
], ],
), ),
], ],

Loading…
Cancel
Save