diff --git a/src/main/kotlin/com/jetpackduba/gitnuro/ui/Branches.kt b/src/main/kotlin/com/jetpackduba/gitnuro/ui/Branches.kt index a36ea2c..9f35705 100644 --- a/src/main/kotlin/com/jetpackduba/gitnuro/ui/Branches.kt +++ b/src/main/kotlin/com/jetpackduba/gitnuro/ui/Branches.kt @@ -94,7 +94,7 @@ private fun BranchLineEntry( Text( text = "HEAD", color = MaterialTheme.colors.secondaryTextColor, - style = MaterialTheme.typography.body2, + style = MaterialTheme.typography.caption, modifier = Modifier.padding(horizontal = 16.dp), ) } diff --git a/src/main/kotlin/com/jetpackduba/gitnuro/ui/Remotes.kt b/src/main/kotlin/com/jetpackduba/gitnuro/ui/Remotes.kt index 6d63241..23e4857 100644 --- a/src/main/kotlin/com/jetpackduba/gitnuro/ui/Remotes.kt +++ b/src/main/kotlin/com/jetpackduba/gitnuro/ui/Remotes.kt @@ -114,7 +114,7 @@ private fun RemoteRow( ) { SideMenuSubentry( text = branch.simpleName, - extraPadding = 8.dp, + extraPadding = 24.dp, iconResourcePath = "branch.svg", onClick = { onBranchClicked(branch) } ) diff --git a/src/main/kotlin/com/jetpackduba/gitnuro/ui/SideMenuUtils.kt b/src/main/kotlin/com/jetpackduba/gitnuro/ui/SideMenuUtils.kt deleted file mode 100644 index 03e4a31..0000000 --- a/src/main/kotlin/com/jetpackduba/gitnuro/ui/SideMenuUtils.kt +++ /dev/null @@ -1,13 +0,0 @@ -package com.jetpackduba.gitnuro.ui - -const val MAX_SIDE_PANEL_ITEMS_HEIGHT = 300 -const val ENTRY_HEIGHT = 40 - -fun maxSidePanelHeight(itemsCount: Int): Int { - val itemsHeight = itemsCount * ENTRY_HEIGHT - - return if (itemsHeight < MAX_SIDE_PANEL_ITEMS_HEIGHT) - itemsHeight - else - MAX_SIDE_PANEL_ITEMS_HEIGHT -} \ No newline at end of file diff --git a/src/main/kotlin/com/jetpackduba/gitnuro/ui/components/SideMenuEntry.kt b/src/main/kotlin/com/jetpackduba/gitnuro/ui/components/SideMenuEntry.kt index 9fc625a..f7ddd07 100644 --- a/src/main/kotlin/com/jetpackduba/gitnuro/ui/components/SideMenuEntry.kt +++ b/src/main/kotlin/com/jetpackduba/gitnuro/ui/components/SideMenuEntry.kt @@ -1,6 +1,5 @@ package com.jetpackduba.gitnuro.ui.components -import androidx.compose.foundation.background import androidx.compose.foundation.hoverable import androidx.compose.foundation.interaction.MutableInteractionSource import androidx.compose.foundation.interaction.collectIsHoveredAsState @@ -14,9 +13,10 @@ import androidx.compose.runtime.remember import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.painter.Painter +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp -import com.jetpackduba.gitnuro.theme.headerBackground import com.jetpackduba.gitnuro.theme.primaryTextColor import com.jetpackduba.gitnuro.theme.secondaryTextColor @@ -25,26 +25,35 @@ fun SideMenuEntry( text: String, icon: Painter? = null, itemsCount: Int, - hoverIcon: @Composable (() -> Unit)? = null, + isExpanded: Boolean, + hoverIcon: @Composable() (() -> Unit)? = null, ) { val hoverInteraction = remember { MutableInteractionSource() } val isHovered by hoverInteraction.collectIsHoveredAsState() Row( modifier = Modifier - .height(32.dp) + .height(36.dp) .fillMaxWidth() - .hoverable(hoverInteraction) - .background(color = MaterialTheme.colors.headerBackground), +// .background(color = MaterialTheme.colors.headerBackground) + .hoverable(hoverInteraction), verticalAlignment = Alignment.CenterVertically, ) { + Icon( + painter = painterResource(if (isExpanded) "expand_more.svg" else "chevron_right.svg"), + contentDescription = null, + tint = MaterialTheme.colors.primaryTextColor, + modifier = Modifier + .padding(horizontal = 8.dp) + .size(16.dp), + ) + if (icon != null) { Icon( painter = icon, contentDescription = null, tint = MaterialTheme.colors.primaryTextColor, modifier = Modifier - .padding(start = 8.dp) .size(16.dp), ) } @@ -56,6 +65,7 @@ fun SideMenuEntry( .weight(1f), maxLines = 1, style = MaterialTheme.typography.body2, + fontWeight = FontWeight.Medium, color = MaterialTheme.colors.primaryTextColor, overflow = TextOverflow.Ellipsis, ) @@ -66,6 +76,7 @@ fun SideMenuEntry( Text( text = itemsCount.toString(), style = MaterialTheme.typography.body2, + fontWeight = FontWeight.Medium, color = MaterialTheme.colors.secondaryTextColor, modifier = Modifier.padding(end = 16.dp), ) diff --git a/src/main/kotlin/com/jetpackduba/gitnuro/ui/components/SideMenuPanel.kt b/src/main/kotlin/com/jetpackduba/gitnuro/ui/components/SideMenuPanel.kt index c8d0e63..1428fb8 100644 --- a/src/main/kotlin/com/jetpackduba/gitnuro/ui/components/SideMenuPanel.kt +++ b/src/main/kotlin/com/jetpackduba/gitnuro/ui/components/SideMenuPanel.kt @@ -1,10 +1,8 @@ package com.jetpackduba.gitnuro.ui.components import androidx.compose.foundation.ExperimentalFoundationApi -import androidx.compose.foundation.background import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.material.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.painter.Painter @@ -34,7 +32,8 @@ fun SideMenuPanel( text = title, icon = icon, itemsCount = items.count(), - hoverIcon = headerHoverIcon + hoverIcon = headerHoverIcon, + isExpanded = isExpanded, ) } }, @@ -42,7 +41,6 @@ fun SideMenuPanel( Column( modifier = Modifier .fillMaxWidth() - .background(MaterialTheme.colors.background) ) { for (item in items) { itemContent(item) diff --git a/src/main/kotlin/com/jetpackduba/gitnuro/ui/components/SideMenuSubentry.kt b/src/main/kotlin/com/jetpackduba/gitnuro/ui/components/SideMenuSubentry.kt index 273d6ed..6fbe2e8 100644 --- a/src/main/kotlin/com/jetpackduba/gitnuro/ui/components/SideMenuSubentry.kt +++ b/src/main/kotlin/com/jetpackduba/gitnuro/ui/components/SideMenuSubentry.kt @@ -17,16 +17,16 @@ import androidx.compose.ui.graphics.Color import androidx.compose.ui.res.painterResource import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp -import com.jetpackduba.gitnuro.ui.ENTRY_HEIGHT import com.jetpackduba.gitnuro.theme.primaryTextColor +const val ENTRY_HEIGHT = 36 + @OptIn(ExperimentalFoundationApi::class) @Composable fun SideMenuSubentry( text: String, iconResourcePath: String, extraPadding: Dp = 0.dp, - background: Color = MaterialTheme.colors.background, onClick: (() -> Unit)? = null, onDoubleClick: (() -> Unit)? = null, additionalInfo: @Composable () -> Unit = {} @@ -41,15 +41,15 @@ fun SideMenuSubentry( else this } - .padding(start = extraPadding) - .background(background), + .padding(start = extraPadding), +// .background(background), verticalAlignment = Alignment.CenterVertically, ) { Icon( painter = painterResource(iconResourcePath), contentDescription = null, modifier = Modifier - .padding(horizontal = 8.dp) + .padding(start = 32.dp, end = 8.dp) .size(16.dp), tint = MaterialTheme.colors.primaryVariant, ) diff --git a/src/main/kotlin/com/jetpackduba/gitnuro/ui/diff/Diff.kt b/src/main/kotlin/com/jetpackduba/gitnuro/ui/diff/Diff.kt index 8fd2016..61501fc 100644 --- a/src/main/kotlin/com/jetpackduba/gitnuro/ui/diff/Diff.kt +++ b/src/main/kotlin/com/jetpackduba/gitnuro/ui/diff/Diff.kt @@ -214,7 +214,6 @@ fun NonTextDiff(diffResult: DiffResult.NonText) { horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.Center, ) { -// SideTitle("Binary file") Spacer(modifier = Modifier.height(24.dp)) SideDiff(newBinaryContent) } diff --git a/src/main/resources/branch.svg b/src/main/resources/branch.svg index 8dc060b..a02e539 100644 --- a/src/main/resources/branch.svg +++ b/src/main/resources/branch.svg @@ -1,7 +1,7 @@ - - - - - - + + + + + + diff --git a/src/main/resources/chevron_right.svg b/src/main/resources/chevron_right.svg new file mode 100644 index 0000000..b0428e2 --- /dev/null +++ b/src/main/resources/chevron_right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/main/resources/expand_more.svg b/src/main/resources/expand_more.svg new file mode 100644 index 0000000..b615405 --- /dev/null +++ b/src/main/resources/expand_more.svg @@ -0,0 +1 @@ + \ No newline at end of file