1
0
mirror of https://gitlab.com/comunic/comunicmobile synced 2025-06-19 08:15:16 +00:00

Can update a conversation message

This commit is contained in:
2019-05-04 10:24:38 +02:00
parent c8b68e71aa
commit 62125d7c3d
5 changed files with 151 additions and 21 deletions

View File

@ -12,8 +12,9 @@ import 'package:flutter/material.dart';
///
/// @author Pierre HUBERT
enum _MenuChoices { DELETE }
enum _MenuChoices { DELETE, REQUEST_UPDATE_CONTENT }
typedef OnRequestMessageUpdate = void Function(ConversationMessage);
typedef OnRequestMessageDelete = void Function(ConversationMessage);
class ConversationMessageTile extends StatelessWidget {
@ -21,6 +22,7 @@ class ConversationMessageTile extends StatelessWidget {
final User userInfo;
final bool isLastMessage;
final bool isFirstMessage;
final OnRequestMessageUpdate onRequestMessageUpdate;
final OnRequestMessageDelete onRequestMessageDelete;
const ConversationMessageTile({
@ -29,11 +31,13 @@ class ConversationMessageTile extends StatelessWidget {
@required this.userInfo,
@required this.isLastMessage,
@required this.isFirstMessage,
@required this.onRequestMessageUpdate,
@required this.onRequestMessageDelete,
}) : assert(message != null),
assert(userInfo != null),
assert(isLastMessage != null),
assert(isFirstMessage != null),
assert(onRequestMessageUpdate != null),
assert(onRequestMessageDelete != null),
super(key: key);
@ -47,6 +51,14 @@ class ConversationMessageTile extends StatelessWidget {
width: 35.0,
),
itemBuilder: (c) => [
// Update message content
PopupMenuItem(
enabled: message.isOwner,
value: _MenuChoices.REQUEST_UPDATE_CONTENT,
child: Text(tr("Update")),
),
// Delete the message
PopupMenuItem(
enabled: message.isOwner,
value: _MenuChoices.DELETE,
@ -256,12 +268,14 @@ class ConversationMessageTile extends StatelessWidget {
/// Process menu choice
void _menuOptionSelected(_MenuChoices value) {
switch (value) {
case _MenuChoices.REQUEST_UPDATE_CONTENT:
onRequestMessageUpdate(message);
break;
switch(value){
case _MenuChoices.DELETE:
onRequestMessageDelete(message);
break;
}
}
}