Skip to content

Commit fab99f0

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

File tree

3 files changed

+39
-36
lines changed

3 files changed

+39
-36
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 & 34 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
@@ -511,7 +516,6 @@ fun <T> SettingDropDown(
511516
onOptionSelected: (DropDownOption<T>) -> Unit,
512517
currentOption: DropDownOption<T>,
513518
) {
514-
var showThemeDropdown by remember { mutableStateOf(false) }
515519
Row(
516520
modifier = Modifier.padding(vertical = 8.dp),
517521
verticalAlignment = Alignment.CenterVertically
@@ -521,40 +525,39 @@ fun <T> SettingDropDown(
521525
Spacer(modifier = Modifier.weight(1f))
522526

523527
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)
528+
DropDownMenu(
529+
items = {
530+
dropDownOptions.map {
531+
ContextMenuElement.ContextTextEntry(it.optionName, onClick = { onOptionSelected(it) })
557532
}
533+
},
534+
) {
535+
Row(
536+
modifier = Modifier.width(180.dp)
537+
.border(
538+
width = 2.dp,
539+
color = MaterialTheme.colors.onBackground.copy(alpha = 0.1F),
540+
shape = RoundedCornerShape(4.dp),
541+
)
542+
.clip(shape = RoundedCornerShape(4.dp))
543+
.background(MaterialTheme.colors.background)
544+
.padding(vertical = 8.dp, horizontal = 16.dp)
545+
.handOnHover(),
546+
verticalAlignment = Alignment.CenterVertically,
547+
) {
548+
Text(
549+
text = currentOption.optionName,
550+
style = MaterialTheme.typography.body1,
551+
color = MaterialTheme.colors.onBackground,
552+
modifier = Modifier.weight(1f),
553+
maxLines = 1
554+
)
555+
556+
Icon(
557+
painter = painterResource(AppIcons.DROPDOWN),
558+
contentDescription = null,
559+
tint = MaterialTheme.colors.onBackground,
560+
)
558561
}
559562
}
560563
}

0 commit comments

Comments
 (0)