Add tooltips for AppBarActions

Partially addresses #8270. A bunch of Scaffolds aren't using this helper.
This commit is contained in:
arkon 2023-05-12 22:56:13 -04:00
parent 8fae92034e
commit 22afae4449

View file

@ -17,6 +17,7 @@ import androidx.compose.material3.DropdownMenuItem
import androidx.compose.material3.Icon import androidx.compose.material3.Icon
import androidx.compose.material3.IconButton import androidx.compose.material3.IconButton
import androidx.compose.material3.MaterialTheme import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.PlainTooltipBox
import androidx.compose.material3.Text import androidx.compose.material3.Text
import androidx.compose.material3.TopAppBar import androidx.compose.material3.TopAppBar
import androidx.compose.material3.TopAppBarDefaults import androidx.compose.material3.TopAppBarDefaults
@ -179,21 +180,36 @@ fun AppBarActions(
var showMenu by remember { mutableStateOf(false) } var showMenu by remember { mutableStateOf(false) }
actions.filterIsInstance<AppBar.Action>().map { actions.filterIsInstance<AppBar.Action>().map {
IconButton( PlainTooltipBox(
onClick = it.onClick, tooltip = { Text(it.title) },
enabled = it.enabled,
) { ) {
Icon( IconButton(
imageVector = it.icon, onClick = it.onClick,
contentDescription = it.title, enabled = it.enabled,
) modifier = Modifier.tooltipAnchor(),
) {
Icon(
imageVector = it.icon,
contentDescription = it.title,
)
}
} }
} }
val overflowActions = actions.filterIsInstance<AppBar.OverflowAction>() val overflowActions = actions.filterIsInstance<AppBar.OverflowAction>()
if (overflowActions.isNotEmpty()) { if (overflowActions.isNotEmpty()) {
IconButton(onClick = { showMenu = !showMenu }) { PlainTooltipBox(
Icon(Icons.Outlined.MoreVert, contentDescription = stringResource(R.string.abc_action_menu_overflow_description)) tooltip = { Text(stringResource(R.string.abc_action_menu_overflow_description)) },
) {
IconButton(
onClick = { showMenu = !showMenu },
modifier = Modifier.tooltipAnchor(),
) {
Icon(
Icons.Outlined.MoreVert,
contentDescription = stringResource(R.string.abc_action_menu_overflow_description),
)
}
} }
DropdownMenu( DropdownMenu(
@ -301,17 +317,35 @@ fun SearchToolbar(
if (!searchEnabled) { if (!searchEnabled) {
// Don't show search action // Don't show search action
} else if (searchQuery == null) { } else if (searchQuery == null) {
IconButton(onClick) { PlainTooltipBox(
Icon(Icons.Outlined.Search, contentDescription = stringResource(R.string.action_search)) tooltip = { Text(stringResource(R.string.action_search)) },
) {
IconButton(
onClick = onClick,
modifier = Modifier.tooltipAnchor(),
) {
Icon(
Icons.Outlined.Search,
contentDescription = stringResource(R.string.action_search),
)
}
} }
} else if (searchQuery.isNotEmpty()) { } else if (searchQuery.isNotEmpty()) {
IconButton( PlainTooltipBox(
onClick = { tooltip = { Text(stringResource(R.string.action_reset)) },
onClick()
focusRequester.requestFocus()
},
) { ) {
Icon(Icons.Outlined.Close, contentDescription = stringResource(R.string.action_reset)) IconButton(
onClick = {
onClick()
focusRequester.requestFocus()
},
modifier = Modifier.tooltipAnchor(),
) {
Icon(
Icons.Outlined.Close,
contentDescription = stringResource(R.string.action_reset),
)
}
} }
} }
} }