Robert Jaros
11/14/2022, 6:27 PMashmelev
11/14/2022, 8:27 PMRobert Jaros
11/14/2022, 8:28 PMRobert Jaros
11/14/2022, 8:35 PMSelect(label = tr("Select with remote data source")) {
ajaxOptions = AjaxOptions("<https://api.github.com/search/repositories>", preprocessData = {
it.items.map { item ->
obj {
this.value = item.id
this.text = item.name
this.data = obj {
this.subtext = item.owner.login
}
}
}
}, data = obj {
q = "{{{q}}}"
})
}
will change to this:
TomSelect(label = tr("Select with remote data source")) {
tsCallbacks = TomSelectCallbacks(
load = { query, callback ->
restClient.callDynamic("<https://api.github.com/search/repositories>") {
data = obj { q = query }
resultTransform = { it.items }
}.then { items: dynamic ->
@Suppress("UnsafeCastFromDynamic")
callback(items.map { item ->
obj {
this.value = item.id
this.text = item.name
this.subtext = item.owner.login
}
})
}
}
)
tsRenders = TomSelectRenders(option = { item, escape ->
"""
<div>
<span class="title">${escape(item.text)}</span>
<small>(${escape(item.subtext)})</small>
</div>
""".trimIndent()
})
}
Robert Jaros
11/14/2022, 8:39 PMashmelev
11/14/2022, 8:54 PM