Skip to content

Commit 3d14b30

Browse files
committed
update: [SuperDropdown] Change background instead of focus state when "selected".
1 parent 2495c0b commit 3d14b30

File tree

1 file changed

+10
-22
lines changed

1 file changed

+10
-22
lines changed

miuix/src/commonMain/kotlin/top/yukonga/miuix/kmp/extra/SuperDropdown.kt

Lines changed: 10 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@ import androidx.compose.foundation.Image
44
import androidx.compose.foundation.background
55
import androidx.compose.foundation.clickable
66
import androidx.compose.foundation.gestures.detectTapGestures
7-
import androidx.compose.foundation.interaction.FocusInteraction
8-
import androidx.compose.foundation.interaction.MutableInteractionSource
97
import androidx.compose.foundation.layout.Arrangement
108
import androidx.compose.foundation.layout.Row
119
import androidx.compose.foundation.layout.WindowInsets
@@ -23,7 +21,6 @@ import androidx.compose.foundation.layout.statusBars
2321
import androidx.compose.foundation.layout.width
2422
import androidx.compose.foundation.layout.windowInsetsPadding
2523
import androidx.compose.foundation.lazy.LazyColumn
26-
import androidx.compose.material.ripple
2724
import androidx.compose.runtime.Composable
2825
import androidx.compose.runtime.LaunchedEffect
2926
import androidx.compose.runtime.MutableState
@@ -115,17 +112,10 @@ fun SuperDropdown(
115112
var dropdownOffsetYPx by remember { mutableStateOf(0) }
116113
var componentHeightPx by remember { mutableStateOf(0) }
117114
var componentWidthPx by remember { mutableStateOf(0) }
118-
val interactionSource = remember { MutableInteractionSource() }
119-
val focus = remember { mutableStateOf<FocusInteraction.Focus?>(null) }
115+
val touchTint = remember { mutableStateOf(Color.Transparent) }
120116

121-
LaunchedEffect(isDropdownExpanded.value) {
122-
if (isDropdownExpanded.value) {
123-
focus.value = FocusInteraction.Focus().also {
124-
interactionSource.emit(it)
125-
}
126-
} else {
127-
focus.value?.let { interactionSource.emit(FocusInteraction.Unfocus(it)) }
128-
}
117+
isDropdownExpanded.value.let {
118+
touchTint.value = if (it) MiuixTheme.colorScheme.touchTint else Color.Transparent
129119
}
130120

131121
BasicComponent(
@@ -150,15 +140,7 @@ fun SuperDropdown(
150140
componentWidthPx = coordinates.size.width
151141
}
152142
}
153-
.clickable(
154-
interactionSource = interactionSource,
155-
indication = ripple()
156-
) {
157-
if (enabled) {
158-
isDropdownExpanded.value = enabled
159-
hapticFeedback.performHapticFeedback(HapticFeedbackType.LongPress)
160-
}
161-
},
143+
.background(touchTint.value),
162144
insideMargin = insideMargin,
163145
title = title,
164146
titleColor = titleColor,
@@ -181,6 +163,12 @@ fun SuperDropdown(
181163
contentDescription = null
182164
)
183165
},
166+
onClick = {
167+
if (enabled) {
168+
isDropdownExpanded.value = enabled
169+
hapticFeedback.performHapticFeedback(HapticFeedbackType.LongPress)
170+
}
171+
},
184172
enabled = enabled
185173
)
186174
if (isDropdownExpanded.value) {

0 commit comments

Comments
 (0)