design: update DropdownMenu to better match figma

This commit is contained in:
ganfra 2025-11-05 10:16:51 +01:00
parent e557ceb702
commit 3de8618c64

View file

@ -10,8 +10,10 @@ package io.element.android.libraries.designsystem.theme.components
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.ColumnScope
import androidx.compose.foundation.layout.widthIn
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.DpOffset
import androidx.compose.ui.unit.dp
import androidx.compose.ui.window.PopupProperties
@ -24,22 +26,24 @@ fun DropdownMenu(
expanded: Boolean,
onDismissRequest: () -> Unit,
modifier: Modifier = Modifier,
// By default add a 16.dp offset to the menu
offset: DpOffset = DpOffset(x = 16.dp, y = 0.dp),
offset: DpOffset = DpOffset(x = 0.dp, y = 0.dp),
properties: PopupProperties = PopupProperties(focusable = true),
minWidth: Dp = DropdownMenuDefaults.minWidth,
content: @Composable ColumnScope.() -> Unit
) {
// Note: the internal shape corner radius should be 8dp, but there is a 4p value hardcoded in the internal Surface component
androidx.compose.material3.DropdownMenu(
expanded = expanded,
onDismissRequest = onDismissRequest,
modifier = modifier
.background(color = ElementTheme.colors.bgCanvasDefault)
.widthIn(min = minMenuWidth),
.background(color = ElementTheme.colors.bgCanvasDefaultLevel1)
.widthIn(min = minWidth),
shape = RoundedCornerShape(8.dp),
offset = offset,
properties = properties,
content = content
)
}
private val minMenuWidth = 200.dp
object DropdownMenuDefaults {
val minWidth = 200.dp
}