Make admins see the delete button

Signed-off-by: denis0001-dev <denis0001.dev@ya.ru>
This commit is contained in:
2026-07-17 00:09:57 +03:00
Unverified
parent c53befe4b9
commit a715b7796f
2 changed files with 21 additions and 4 deletions
@@ -750,9 +750,19 @@ fun ChatScreen(
return@LaunchedEffect
}
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 menuFp = messageContextMenuFingerprint(menuMessage, menuAuthor, isReadOnly)
val menuFp = messageContextMenuFingerprint(
menuMessage,
menuAuthor,
menuAuthor || currentUserId == 1,
isReadOnly,
)
if (menuFp != liveFp || liveMessage.id != menuMessage.id) {
contextMenuState = contextMenuState.copy(message = liveMessage)
}
@@ -1482,6 +1492,8 @@ fun ChatScreen(
MessageContextMenu(
state = contextMenuState,
isAuthor = contextMenuState.message?.user_id == currentUserId,
canDelete = contextMenuState.message?.user_id == currentUserId ||
currentUserId == 1,
isReadOnly = isReadOnly,
screenWidthPx = screenWidthPx,
screenHeightPx = screenHeightPx,
@@ -75,6 +75,7 @@ data class ContextMenuState(
internal fun messageContextMenuFingerprint(
message: Message,
isAuthor: Boolean,
canDelete: Boolean,
isReadOnly: Boolean,
): String {
val isQueued = message.isQueuedOutbound() && isAuthor
@@ -88,7 +89,7 @@ internal fun messageContextMenuFingerprint(
if (!isQueued && !isReadOnly) {
append("|reply=1")
append("|edit=").append(isAuthor && !corrupted)
append("|del=").append(isAuthor)
append("|del=").append(canDelete)
}
}
}
@@ -97,6 +98,7 @@ internal fun messageContextMenuFingerprint(
fun MessageContextMenu(
state: ContextMenuState,
isAuthor: Boolean,
canDelete: Boolean = isAuthor,
onDismiss: () -> Unit,
onReply: (Message) -> Unit,
onEdit: (Message) -> Unit,
@@ -161,6 +163,7 @@ fun MessageContextMenu(
ContextMenuContent(
message = state.message,
isAuthor = isAuthor,
canDelete = canDelete,
onReply = {},
onEdit = {},
onDelete = {},
@@ -242,6 +245,7 @@ fun MessageContextMenu(
ContextMenuContent(
message = state.message,
isAuthor = isAuthor,
canDelete = canDelete,
onReply = {
onReply(it)
onDismiss()
@@ -287,6 +291,7 @@ fun MessageContextMenu(
private fun ContextMenuContent(
message: Message,
isAuthor: Boolean,
canDelete: Boolean,
onReply: (Message) -> Unit,
onEdit: (Message) -> Unit,
onDelete: (Message) -> Unit,
@@ -402,7 +407,7 @@ private fun ContextMenuContent(
onClick = { onEdit(message) }
)
}
if (isAuthor) {
if (canDelete) {
ContextMenuItem(
icon = Icons.Rounded.Delete,
text = labelDelete,