Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Unverified Commit 74653a7b authored by Wolf-Martell Montwé's avatar Wolf-Martell Montwé
Browse files

Add optional icon to NavigationDrawerItemBadge

parent be4ba7ca
Loading
Loading
Loading
Loading
+13 −1
Original line number Diff line number Diff line
@@ -3,13 +3,25 @@ package app.k9mail.core.ui.compose.designsystem.organism.drawer
import androidx.compose.runtime.Composable
import androidx.compose.ui.tooling.preview.Preview
import app.k9mail.core.ui.compose.designsystem.PreviewWithThemes
import app.k9mail.core.ui.compose.designsystem.atom.icon.Icons

@Composable
@Preview(showBackground = true)
internal fun NavigationDrawerItemBadgePreview() {
    PreviewWithThemes {
        NavigationDrawerItemBadge(
            label = "100+",
            label = "99+",
        )
    }
}

@Composable
@Preview(showBackground = true)
internal fun NavigationDrawerItemBadgeWithIconPreview() {
    PreviewWithThemes {
        NavigationDrawerItemBadge(
            label = "99+",
            imageVector = Icons.Outlined.Info,
        )
    }
}
+29 −3
Original line number Diff line number Diff line
package app.k9mail.core.ui.compose.designsystem.organism.drawer

import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.vector.ImageVector
import app.k9mail.core.ui.compose.designsystem.atom.icon.Icon
import app.k9mail.core.ui.compose.designsystem.atom.text.TextLabelLarge
import app.k9mail.core.ui.compose.theme2.MainTheme

/**
 * A badge for a navigation drawer item with an optional icon.
 *
 * @param label The label to display.
 * @param modifier The modifier to apply.
 * @param imageVector The image vector to display (optional).
 */
@Composable
fun NavigationDrawerItemBadge(
    label: String,
    modifier: Modifier = Modifier,
    imageVector: ImageVector? = null,
) {
    Row(
        modifier = modifier,
        verticalAlignment = Alignment.CenterVertically,
    ) {
        if (imageVector != null) {
            Icon(
                imageVector = imageVector,
                modifier = Modifier.size(MainTheme.sizes.iconSmall)
                    .padding(end = MainTheme.spacings.quarter),
            )
        }
        TextLabelLarge(
            text = label,
        modifier = modifier,
        )
    }
}