46 lines
1.4 KiB
Kotlin
46 lines
1.4 KiB
Kotlin
package moe.fuqiuluo.shamrock.ui.tools
|
|
|
|
import android.annotation.SuppressLint
|
|
import androidx.compose.foundation.Indication
|
|
import androidx.compose.foundation.IndicationInstance
|
|
import androidx.compose.foundation.clickable
|
|
import androidx.compose.foundation.interaction.InteractionSource
|
|
import androidx.compose.foundation.interaction.MutableInteractionSource
|
|
import androidx.compose.runtime.Composable
|
|
import androidx.compose.runtime.remember
|
|
import androidx.compose.ui.Modifier
|
|
import androidx.compose.ui.graphics.drawscope.ContentDrawScope
|
|
import androidx.compose.ui.semantics.Role
|
|
|
|
@SuppressLint("ComposableModifierFactory")
|
|
@Composable
|
|
fun Modifier.noRippleClickable(
|
|
interactionSource: MutableInteractionSource = remember { MutableInteractionSource() },
|
|
indication: Indication? = null,
|
|
enabled: Boolean = true,
|
|
onClickLabel: String? = null,
|
|
role: Role? = null,
|
|
onClick: () -> Unit,
|
|
) = clickable(
|
|
interactionSource = interactionSource,
|
|
indication = indication,
|
|
enabled = enabled,
|
|
onClickLabel = onClickLabel,
|
|
role = role,
|
|
onClick = onClick,
|
|
)
|
|
|
|
object NoIndication : Indication {
|
|
private object NoIndicationInstance : IndicationInstance {
|
|
override fun ContentDrawScope.drawIndication() {
|
|
drawContent()
|
|
}
|
|
}
|
|
|
|
@Composable
|
|
override fun rememberUpdatedInstance(interactionSource: InteractionSource): IndicationInstance {
|
|
return NoIndicationInstance
|
|
}
|
|
}
|
|
|