Skip to content

Commit 71ccf22

Browse files
committed
Added new drop down design for settings entries
1 parent f505d2d commit 71ccf22

File tree

3 files changed

+39
-35
lines changed

3 files changed

+39
-35
lines changed

src/main/kotlin/com/jetpackduba/gitnuro/ui/Menu.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -332,7 +332,7 @@ fun ExtendedMenuButton(
332332
}
333333
}
334334

335-
DropdownMenu(
335+
DropDownMenu(
336336
items = { extendedListItems }
337337
) {
338338
Box(

src/main/kotlin/com/jetpackduba/gitnuro/ui/context_menu/ContextMenu.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ fun ContextMenu(enabled: Boolean = true, items: () -> List<ContextMenuElement>,
5959
}
6060

6161
@Composable
62-
fun DropdownMenu(items: () -> List<ContextMenuElement>, function: @Composable () -> Unit) {
62+
fun DropDownMenu(items: () -> List<ContextMenuElement>, function: @Composable () -> Unit) {
6363
Box(modifier = Modifier.dropdownMenu(items), propagateMinConstraints = true) {
6464
function()
6565
}

src/main/kotlin/com/jetpackduba/gitnuro/ui/dialogs/settings/SettingsDialog.kt

Lines changed: 37 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,15 @@
11
package com.jetpackduba.gitnuro.ui.dialogs.settings
22

33
import androidx.compose.foundation.background
4+
import androidx.compose.foundation.border
45
import androidx.compose.foundation.layout.*
6+
import androidx.compose.foundation.shape.RoundedCornerShape
57
import androidx.compose.foundation.text.KeyboardOptions
68
import androidx.compose.material.*
79
import androidx.compose.runtime.*
810
import androidx.compose.ui.Alignment
911
import androidx.compose.ui.Modifier
12+
import androidx.compose.ui.draw.clip
1013
import androidx.compose.ui.platform.LocalDensity
1114
import androidx.compose.ui.res.painterResource
1215
import androidx.compose.ui.text.font.FontWeight
@@ -22,6 +25,8 @@ import com.jetpackduba.gitnuro.managers.Error
2225
import com.jetpackduba.gitnuro.repositories.DEFAULT_UI_SCALE
2326
import com.jetpackduba.gitnuro.theme.*
2427
import com.jetpackduba.gitnuro.ui.components.*
28+
import com.jetpackduba.gitnuro.ui.context_menu.ContextMenuElement
29+
import com.jetpackduba.gitnuro.ui.context_menu.DropDownMenu
2530
import com.jetpackduba.gitnuro.ui.dialogs.errors.ErrorDialog
2631
import com.jetpackduba.gitnuro.ui.dialogs.MaterialDialog
2732
import com.jetpackduba.gitnuro.ui.dropdowns.DropDownOption
@@ -521,40 +526,39 @@ fun <T> SettingDropDown(
521526
Spacer(modifier = Modifier.weight(1f))
522527

523528
Box {
524-
OutlinedButton(
525-
onClick = { showThemeDropdown = true },
526-
colors = ButtonDefaults.outlinedButtonColors(backgroundColor = MaterialTheme.colors.background),
527-
modifier = Modifier.width(180.dp)
528-
.handOnHover()
529-
) {
530-
Text(
531-
text = currentOption.optionName,
532-
style = MaterialTheme.typography.body1,
533-
color = MaterialTheme.colors.onBackground,
534-
modifier = Modifier.weight(1f),
535-
maxLines = 1
536-
)
537-
538-
Icon(
539-
painter = painterResource(AppIcons.DROPDOWN),
540-
contentDescription = null,
541-
tint = MaterialTheme.colors.onBackground,
542-
)
543-
}
544-
545-
DropdownMenu(
546-
expanded = showThemeDropdown,
547-
onDismissRequest = { showThemeDropdown = false },
548-
) {
549-
for (dropDownOption in dropDownOptions) {
550-
DropdownMenuItem(
551-
onClick = {
552-
showThemeDropdown = false
553-
onOptionSelected(dropDownOption)
554-
}
555-
) {
556-
Text(dropDownOption.optionName)
529+
DropDownMenu(
530+
items = {
531+
dropDownOptions.map {
532+
ContextMenuElement.ContextTextEntry(it.optionName, onClick = { onOptionSelected(it) })
557533
}
534+
},
535+
) {
536+
Row(
537+
modifier = Modifier.width(180.dp)
538+
.border(
539+
width = 2.dp,
540+
color = MaterialTheme.colors.onBackground.copy(alpha = 0.1F),
541+
shape = RoundedCornerShape(4.dp),
542+
)
543+
.clip(shape = RoundedCornerShape(4.dp))
544+
.background(MaterialTheme.colors.background)
545+
.padding(vertical = 8.dp, horizontal = 16.dp)
546+
.handOnHover(),
547+
verticalAlignment = Alignment.CenterVertically,
548+
) {
549+
Text(
550+
text = currentOption.optionName,
551+
style = MaterialTheme.typography.body1,
552+
color = MaterialTheme.colors.onBackground,
553+
modifier = Modifier.weight(1f),
554+
maxLines = 1
555+
)
556+
557+
Icon(
558+
painter = painterResource(AppIcons.DROPDOWN),
559+
contentDescription = null,
560+
tint = MaterialTheme.colors.onBackground,
561+
)
558562
}
559563
}
560564
}

0 commit comments

Comments
 (0)