feat: convert Messages mark-as-read menu to M3 dialog

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
davotoula
2026-03-20 17:02:46 +01:00
parent 19ff300f65
commit 29f0b78fdd
@@ -28,8 +28,9 @@ import androidx.compose.foundation.pager.HorizontalPager
import androidx.compose.foundation.pager.PagerState
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.MoreVert
import androidx.compose.material3.DropdownMenu
import androidx.compose.material3.DropdownMenuItem
import androidx.compose.material.icons.outlined.DoneAll
import androidx.compose.material.icons.outlined.Groups
import androidx.compose.material.icons.outlined.MoveToInbox
import androidx.compose.material3.Icon
import androidx.compose.material3.IconButton
import androidx.compose.material3.MaterialTheme
@@ -48,6 +49,9 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import com.vitorpamplona.amethyst.R
import com.vitorpamplona.amethyst.commons.ui.feeds.FeedContentState
import com.vitorpamplona.amethyst.ui.components.M3ActionDialog
import com.vitorpamplona.amethyst.ui.components.M3ActionRow
import com.vitorpamplona.amethyst.ui.components.M3ActionSection
import com.vitorpamplona.amethyst.ui.components.zonedDrawerSwipe
import com.vitorpamplona.amethyst.ui.navigation.navs.INav
import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel
@@ -103,12 +107,13 @@ fun MessagesTabHeader(
contentDescription = stringRes(id = R.string.more_options),
tint = MaterialTheme.colorScheme.placeholderText,
)
}
MessagesTabMenu(
moreActionsExpanded,
{ moreActionsExpanded = false },
onMarkKnownAsRead,
onMarkNewAsRead,
if (moreActionsExpanded) {
MessagesMarkAsReadDialog(
onDismiss = { moreActionsExpanded = false },
onMarkKnownAsRead = onMarkKnownAsRead,
onMarkNewAsRead = onMarkNewAsRead,
)
}
}
@@ -142,34 +147,38 @@ fun MessagesPager(
}
@Composable
fun MessagesTabMenu(
expanded: Boolean,
fun MessagesMarkAsReadDialog(
onDismiss: () -> Unit,
onMarkKnownAsRead: () -> Unit,
onMarkNewAsRead: () -> Unit,
) {
DropdownMenu(expanded = expanded, onDismissRequest = onDismiss) {
DropdownMenuItem(
text = { Text(stringRes(R.string.mark_all_known_as_read)) },
onClick = {
M3ActionDialog(
title = stringRes(R.string.mark_as_read_dialog_title),
onDismiss = onDismiss,
) {
M3ActionSection {
M3ActionRow(
icon = Icons.Outlined.Groups,
text = stringRes(R.string.mark_all_known_as_read),
) {
onMarkKnownAsRead()
onDismiss()
},
)
DropdownMenuItem(
text = { Text(stringRes(R.string.mark_all_new_as_read)) },
onClick = {
}
M3ActionRow(
icon = Icons.Outlined.MoveToInbox,
text = stringRes(R.string.mark_all_new_as_read),
) {
onMarkNewAsRead()
onDismiss()
},
)
DropdownMenuItem(
text = { Text(stringRes(R.string.mark_all_as_read)) },
onClick = {
}
M3ActionRow(
icon = Icons.Outlined.DoneAll,
text = stringRes(R.string.mark_all_as_read),
) {
onMarkKnownAsRead()
onMarkNewAsRead()
onDismiss()
},
)
}
}
}
}