mirror of
https://github.com/fromchat-messenger/app.git
synced 2026-09-22 19:15:05 +03:00
Make admins see the delete button
Signed-off-by: denis0001-dev <denis0001.dev@ya.ru>
This commit is contained in:
@@ -750,9 +750,19 @@ fun ChatScreen(
|
|||||||
return@LaunchedEffect
|
return@LaunchedEffect
|
||||||
}
|
}
|
||||||
val liveAuthor = liveMessage.user_id == currentUserId
|
val liveAuthor = liveMessage.user_id == currentUserId
|
||||||
val liveFp = messageContextMenuFingerprint(liveMessage, liveAuthor, isReadOnly)
|
val liveFp = messageContextMenuFingerprint(
|
||||||
|
liveMessage,
|
||||||
|
liveAuthor,
|
||||||
|
liveAuthor || currentUserId == 1,
|
||||||
|
isReadOnly,
|
||||||
|
)
|
||||||
val menuAuthor = menuMessage.user_id == currentUserId
|
val menuAuthor = menuMessage.user_id == currentUserId
|
||||||
val menuFp = messageContextMenuFingerprint(menuMessage, menuAuthor, isReadOnly)
|
val menuFp = messageContextMenuFingerprint(
|
||||||
|
menuMessage,
|
||||||
|
menuAuthor,
|
||||||
|
menuAuthor || currentUserId == 1,
|
||||||
|
isReadOnly,
|
||||||
|
)
|
||||||
if (menuFp != liveFp || liveMessage.id != menuMessage.id) {
|
if (menuFp != liveFp || liveMessage.id != menuMessage.id) {
|
||||||
contextMenuState = contextMenuState.copy(message = liveMessage)
|
contextMenuState = contextMenuState.copy(message = liveMessage)
|
||||||
}
|
}
|
||||||
@@ -1482,6 +1492,8 @@ fun ChatScreen(
|
|||||||
MessageContextMenu(
|
MessageContextMenu(
|
||||||
state = contextMenuState,
|
state = contextMenuState,
|
||||||
isAuthor = contextMenuState.message?.user_id == currentUserId,
|
isAuthor = contextMenuState.message?.user_id == currentUserId,
|
||||||
|
canDelete = contextMenuState.message?.user_id == currentUserId ||
|
||||||
|
currentUserId == 1,
|
||||||
isReadOnly = isReadOnly,
|
isReadOnly = isReadOnly,
|
||||||
screenWidthPx = screenWidthPx,
|
screenWidthPx = screenWidthPx,
|
||||||
screenHeightPx = screenHeightPx,
|
screenHeightPx = screenHeightPx,
|
||||||
|
|||||||
@@ -75,6 +75,7 @@ data class ContextMenuState(
|
|||||||
internal fun messageContextMenuFingerprint(
|
internal fun messageContextMenuFingerprint(
|
||||||
message: Message,
|
message: Message,
|
||||||
isAuthor: Boolean,
|
isAuthor: Boolean,
|
||||||
|
canDelete: Boolean,
|
||||||
isReadOnly: Boolean,
|
isReadOnly: Boolean,
|
||||||
): String {
|
): String {
|
||||||
val isQueued = message.isQueuedOutbound() && isAuthor
|
val isQueued = message.isQueuedOutbound() && isAuthor
|
||||||
@@ -88,7 +89,7 @@ internal fun messageContextMenuFingerprint(
|
|||||||
if (!isQueued && !isReadOnly) {
|
if (!isQueued && !isReadOnly) {
|
||||||
append("|reply=1")
|
append("|reply=1")
|
||||||
append("|edit=").append(isAuthor && !corrupted)
|
append("|edit=").append(isAuthor && !corrupted)
|
||||||
append("|del=").append(isAuthor)
|
append("|del=").append(canDelete)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -97,6 +98,7 @@ internal fun messageContextMenuFingerprint(
|
|||||||
fun MessageContextMenu(
|
fun MessageContextMenu(
|
||||||
state: ContextMenuState,
|
state: ContextMenuState,
|
||||||
isAuthor: Boolean,
|
isAuthor: Boolean,
|
||||||
|
canDelete: Boolean = isAuthor,
|
||||||
onDismiss: () -> Unit,
|
onDismiss: () -> Unit,
|
||||||
onReply: (Message) -> Unit,
|
onReply: (Message) -> Unit,
|
||||||
onEdit: (Message) -> Unit,
|
onEdit: (Message) -> Unit,
|
||||||
@@ -161,6 +163,7 @@ fun MessageContextMenu(
|
|||||||
ContextMenuContent(
|
ContextMenuContent(
|
||||||
message = state.message,
|
message = state.message,
|
||||||
isAuthor = isAuthor,
|
isAuthor = isAuthor,
|
||||||
|
canDelete = canDelete,
|
||||||
onReply = {},
|
onReply = {},
|
||||||
onEdit = {},
|
onEdit = {},
|
||||||
onDelete = {},
|
onDelete = {},
|
||||||
@@ -242,6 +245,7 @@ fun MessageContextMenu(
|
|||||||
ContextMenuContent(
|
ContextMenuContent(
|
||||||
message = state.message,
|
message = state.message,
|
||||||
isAuthor = isAuthor,
|
isAuthor = isAuthor,
|
||||||
|
canDelete = canDelete,
|
||||||
onReply = {
|
onReply = {
|
||||||
onReply(it)
|
onReply(it)
|
||||||
onDismiss()
|
onDismiss()
|
||||||
@@ -287,6 +291,7 @@ fun MessageContextMenu(
|
|||||||
private fun ContextMenuContent(
|
private fun ContextMenuContent(
|
||||||
message: Message,
|
message: Message,
|
||||||
isAuthor: Boolean,
|
isAuthor: Boolean,
|
||||||
|
canDelete: Boolean,
|
||||||
onReply: (Message) -> Unit,
|
onReply: (Message) -> Unit,
|
||||||
onEdit: (Message) -> Unit,
|
onEdit: (Message) -> Unit,
|
||||||
onDelete: (Message) -> Unit,
|
onDelete: (Message) -> Unit,
|
||||||
@@ -402,7 +407,7 @@ private fun ContextMenuContent(
|
|||||||
onClick = { onEdit(message) }
|
onClick = { onEdit(message) }
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
if (isAuthor) {
|
if (canDelete) {
|
||||||
ContextMenuItem(
|
ContextMenuItem(
|
||||||
icon = Icons.Rounded.Delete,
|
icon = Icons.Rounded.Delete,
|
||||||
text = labelDelete,
|
text = labelDelete,
|
||||||
|
|||||||
Reference in New Issue
Block a user