mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-11-04 08:08:55 +01:00 
			
		
		
		
	Minor composable updates
Extracted from #7244 Co-authored-by: ivaniskandar <ivaniskandar@users.noreply.github.com>
This commit is contained in:
		@@ -1,10 +1,8 @@
 | 
			
		||||
package eu.kanade.presentation.components
 | 
			
		||||
 | 
			
		||||
import androidx.compose.foundation.layout.Column
 | 
			
		||||
import androidx.compose.foundation.layout.widthIn
 | 
			
		||||
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.material3.Icon
 | 
			
		||||
import androidx.compose.material3.IconButton
 | 
			
		||||
@@ -15,12 +13,10 @@ import androidx.compose.runtime.getValue
 | 
			
		||||
import androidx.compose.runtime.mutableStateOf
 | 
			
		||||
import androidx.compose.runtime.remember
 | 
			
		||||
import androidx.compose.runtime.setValue
 | 
			
		||||
import androidx.compose.ui.Modifier
 | 
			
		||||
import androidx.compose.ui.graphics.vector.ImageVector
 | 
			
		||||
import androidx.compose.ui.res.stringResource
 | 
			
		||||
import androidx.compose.ui.text.font.FontWeight
 | 
			
		||||
import androidx.compose.ui.text.style.TextOverflow
 | 
			
		||||
import androidx.compose.ui.unit.dp
 | 
			
		||||
import eu.kanade.tachiyomi.R
 | 
			
		||||
 | 
			
		||||
@Composable
 | 
			
		||||
@@ -72,7 +68,6 @@ fun AppBarActions(
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        DropdownMenu(
 | 
			
		||||
            modifier = Modifier.widthIn(min = 200.dp),
 | 
			
		||||
            expanded = showMenu,
 | 
			
		||||
            onDismissRequest = { showMenu = false },
 | 
			
		||||
        ) {
 | 
			
		||||
 
 | 
			
		||||
@@ -0,0 +1,28 @@
 | 
			
		||||
package eu.kanade.presentation.components
 | 
			
		||||
 | 
			
		||||
import androidx.compose.foundation.layout.ColumnScope
 | 
			
		||||
import androidx.compose.foundation.layout.sizeIn
 | 
			
		||||
import androidx.compose.runtime.Composable
 | 
			
		||||
import androidx.compose.ui.Modifier
 | 
			
		||||
import androidx.compose.ui.unit.DpOffset
 | 
			
		||||
import androidx.compose.ui.unit.dp
 | 
			
		||||
import androidx.compose.ui.window.PopupProperties
 | 
			
		||||
import androidx.compose.material3.DropdownMenu as ComposeDropdownMenu
 | 
			
		||||
 | 
			
		||||
@Composable
 | 
			
		||||
fun DropdownMenu(
 | 
			
		||||
    expanded: Boolean,
 | 
			
		||||
    onDismissRequest: () -> Unit,
 | 
			
		||||
    modifier: Modifier = Modifier,
 | 
			
		||||
    properties: PopupProperties = PopupProperties(focusable = true),
 | 
			
		||||
    content: @Composable ColumnScope.() -> Unit,
 | 
			
		||||
) {
 | 
			
		||||
    ComposeDropdownMenu(
 | 
			
		||||
        expanded = expanded,
 | 
			
		||||
        onDismissRequest = onDismissRequest,
 | 
			
		||||
        modifier = modifier.sizeIn(minWidth = 196.dp, maxWidth = 196.dp),
 | 
			
		||||
        offset = DpOffset(8.dp, (-8).dp),
 | 
			
		||||
        properties = properties,
 | 
			
		||||
        content = content,
 | 
			
		||||
    )
 | 
			
		||||
}
 | 
			
		||||
@@ -1,5 +1,6 @@
 | 
			
		||||
package eu.kanade.presentation.components
 | 
			
		||||
 | 
			
		||||
import androidx.compose.foundation.clickable
 | 
			
		||||
import androidx.compose.foundation.layout.aspectRatio
 | 
			
		||||
import androidx.compose.foundation.shape.RoundedCornerShape
 | 
			
		||||
import androidx.compose.runtime.Composable
 | 
			
		||||
@@ -9,6 +10,7 @@ import androidx.compose.ui.graphics.Color
 | 
			
		||||
import androidx.compose.ui.graphics.Shape
 | 
			
		||||
import androidx.compose.ui.graphics.painter.ColorPainter
 | 
			
		||||
import androidx.compose.ui.layout.ContentScale
 | 
			
		||||
import androidx.compose.ui.semantics.Role
 | 
			
		||||
import androidx.compose.ui.unit.dp
 | 
			
		||||
import coil.compose.AsyncImage
 | 
			
		||||
import eu.kanade.presentation.util.rememberResourceBitmapPainter
 | 
			
		||||
@@ -24,6 +26,7 @@ enum class MangaCover(val ratio: Float) {
 | 
			
		||||
        data: Any?,
 | 
			
		||||
        contentDescription: String? = null,
 | 
			
		||||
        shape: Shape? = null,
 | 
			
		||||
        onClick: (() -> Unit)? = null,
 | 
			
		||||
    ) {
 | 
			
		||||
        AsyncImage(
 | 
			
		||||
            model = data,
 | 
			
		||||
@@ -32,7 +35,15 @@ enum class MangaCover(val ratio: Float) {
 | 
			
		||||
            contentDescription = contentDescription,
 | 
			
		||||
            modifier = modifier
 | 
			
		||||
                .aspectRatio(ratio)
 | 
			
		||||
                .clip(shape ?: RoundedCornerShape(4.dp)),
 | 
			
		||||
                .clip(shape ?: RoundedCornerShape(4.dp))
 | 
			
		||||
                .then(
 | 
			
		||||
                    if (onClick != null) {
 | 
			
		||||
                        Modifier.clickable(
 | 
			
		||||
                            role = Role.Button,
 | 
			
		||||
                            onClick = onClick,
 | 
			
		||||
                        )
 | 
			
		||||
                    } else Modifier,
 | 
			
		||||
                ),
 | 
			
		||||
            contentScale = ContentScale.Crop,
 | 
			
		||||
        )
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -52,10 +52,9 @@ fun HistoryItem(
 | 
			
		||||
        verticalAlignment = Alignment.CenterVertically,
 | 
			
		||||
    ) {
 | 
			
		||||
        MangaCover.Book(
 | 
			
		||||
            modifier = Modifier
 | 
			
		||||
                .fillMaxHeight()
 | 
			
		||||
                .clickable(onClick = onClickCover),
 | 
			
		||||
            modifier = Modifier.fillMaxHeight(),
 | 
			
		||||
            data = history.coverData,
 | 
			
		||||
            onClick = onClickCover,
 | 
			
		||||
        )
 | 
			
		||||
        Column(
 | 
			
		||||
            modifier = Modifier
 | 
			
		||||
 
 | 
			
		||||
@@ -45,9 +45,9 @@ private val defaultCover: @Composable RowScope.(Manga, () -> Unit) -> Unit = { m
 | 
			
		||||
    MangaCover.Square(
 | 
			
		||||
        modifier = Modifier
 | 
			
		||||
            .padding(vertical = 8.dp)
 | 
			
		||||
            .clickable(onClick = onClick)
 | 
			
		||||
            .fillMaxHeight(),
 | 
			
		||||
        data = manga,
 | 
			
		||||
        onClick = onClick,
 | 
			
		||||
    )
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user