fun PackageSearchSearchBar()

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
                        )
                    }
                }
            }
        )
    }

}