in plugin/src/main/kotlin/com/jetbrains/packagesearch/plugin/ui/panels/packages/PackageSearchSearchBar.kt [22:74]
fun PackageSearchSearchBar(
onlineSearchEnabled: Boolean,
searchQuery: String,
onSearchQueryChange: (String) -> Unit,
onSearchQueryClear: () -> Unit,
) {
Row(
modifier = Modifier
.fillMaxWidth()
.height(PackageSearchMetrics.searchBarHeight)
.padding(horizontal = 8.dp),
verticalAlignment = Alignment.CenterVertically,
) {
Crossfade(onlineSearchEnabled) {
Icon(
resource = if (it) "actions/search.svg" else "general/filter.svg",
contentDescription = null,
iconClass = AllIcons::class.java,
modifier = Modifier.padding(end = 4.dp),
)
}
TextField(
value = searchQuery,
onValueChange = onSearchQueryChange,
modifier = Modifier.fillMaxWidth().weight(1f),
undecorated = true,
style = LocalTextFieldStyle.current,
placeholder = {
Row(modifier = Modifier.padding(start = 4.dp)) {
Text(text = message("packagesearch.search.search"))
Crossfade(targetState = onlineSearchEnabled) {
if (!it) {
Text(" " + message("packagesearch.search.filterOnly"))
}
}
}
},
trailingIcon = {
Crossfade(searchQuery.isEmpty()) {
if (it) return@Crossfade
IconButton(onClick = { onSearchQueryClear() }) {
Icon(
resource = "actions/close.svg",
contentDescription = null,
iconClass = AllIcons::class.java
)
}
}
}
)
}
}