Kumaran Masilamani
05/07/2021, 2:57 PMval searchText =Text {
placeholder = tr("Search...")
input.addCssClass("search-text")
}
In the init block of the panel I have:
searchText.subscribe {
MyManager.filter(state.searchQuery.copy(keyword = it))
}
In the Manager:
I filtered the original items, using the query object and derived a newObservableList()
and trying to update via the dispatch Action
MyAction.UpdateItems(newList)
But somehow it goes into recursion :)Robert Jaros
05/07/2021, 4:04 PMRobert Jaros
05/07/2021, 4:07 PMKumaran Masilamani
05/07/2021, 4:09 PMKumaran Masilamani
05/07/2021, 4:09 PMRobert Jaros
05/07/2021, 4:10 PMbind
or you can use DSL builder with observablestate (e.g. redux store) as a first parameter.Robert Jaros
05/07/2021, 4:11 PMRobert Jaros
05/07/2021, 4:11 PMRobert Jaros
05/07/2021, 4:12 PMRobert Jaros
05/07/2021, 4:13 PMRobert Jaros
05/07/2021, 4:14 PMRobert Jaros
05/07/2021, 4:15 PMKumaran Masilamani
05/07/2021, 4:16 PMRobert Jaros
05/07/2021, 4:16 PMKumaran Masilamani
05/07/2021, 4:16 PMRobert Jaros
05/07/2021, 4:17 PMRobert Jaros
05/07/2021, 4:17 PMRobert Jaros
05/07/2021, 4:19 PMRobert Jaros
05/07/2021, 4:20 PMRobert Jaros
05/07/2021, 4:21 PMtext.onEvent {
input = {
// your handler
}
}
Robert Jaros
05/07/2021, 4:22 PMRobert Jaros
05/07/2021, 4:22 PMRobert Jaros
05/07/2021, 4:22 PMRobert Jaros
05/07/2021, 4:23 PMRobert Jaros
05/07/2021, 4:24 PMRobert Jaros
05/07/2021, 4:24 PMKumaran Masilamani
05/07/2021, 4:24 PMKumaran Masilamani
05/07/2021, 4:24 PMRobert Jaros
05/07/2021, 4:28 PMRobert Jaros
05/07/2021, 4:29 PMRobert Jaros
05/07/2021, 4:31 PMKumaran Masilamani
05/07/2021, 4:34 PMKumaran Masilamani
05/07/2021, 4:34 PMKumaran Masilamani
05/07/2021, 4:35 PMKumaran Masilamani
05/07/2021, 4:42 PMKumaran Masilamani
05/07/2021, 4:43 PMdiv(className = "row").bind(MyManager.reduxStore) {
state.myItems?.map {
displayItem(state, it)
}
}
Robert Jaros
05/07/2021, 4:45 PMstate
here?Robert Jaros
05/07/2021, 4:45 PMRobert Jaros
05/07/2021, 4:46 PMdiv(className = "row").bind(MyManager.reduxStore) { state ->
// ...
}
Robert Jaros
05/07/2021, 4:46 PMRobert Jaros
05/07/2021, 4:47 PMKumaran Masilamani
05/07/2021, 4:47 PMKumaran Masilamani
05/07/2021, 4:48 PMRobert Jaros
05/07/2021, 4:50 PMbind
Robert Jaros
05/07/2021, 4:52 PMstore.getState()
if you really need, but I don't like such constructs 😉Kumaran Masilamani
05/07/2021, 5:01 PMRobert Jaros
05/07/2021, 5:05 PMRobert Jaros
05/07/2021, 5:06 PMRobert Jaros
05/07/2021, 5:07 PMKumaran Masilamani
05/07/2021, 5:12 PMKumaran Masilamani
05/07/2021, 5:12 PMval searchText =Text {
placeholder = tr("Search...")
input.addCssClass("search-text")
}
Robert Jaros
05/07/2021, 5:13 PMText(value = ...) { }
Kumaran Masilamani
05/07/2021, 5:13 PMRobert Jaros
05/07/2021, 5:14 PMKumaran Masilamani
05/07/2021, 5:15 PMRobert Jaros
05/07/2021, 5:16 PMMyManager.filter()
, isn't it?Kumaran Masilamani
05/07/2021, 5:17 PMRobert Jaros
05/07/2021, 5:17 PMKumaran Masilamani
05/07/2021, 5:18 PMKumaran Masilamani
05/07/2021, 5:18 PMI can see this in example. val input = textInput(TextInputType.SEARCH, state.search, className = "pf-c-form-control") {
setAttribute("aria-invalid", "false")
}
Robert Jaros
05/07/2021, 5:18 PMRobert Jaros
05/07/2021, 5:19 PMPanel().bind(store) { state ->
select()
select()
text()
}
Robert Jaros
05/07/2021, 5:20 PMKumaran Masilamani
05/07/2021, 5:21 PMsearchPanel = formPanel<MySearch>(
className = "form-inline main-search-panel d-flex justify-content-center",
type = FormType.INLINE
) {
add(MySearch::keyword, searchText)
Robert Jaros
05/07/2021, 5:21 PMtext(value = state.searchQuery.keyword)
Robert Jaros
05/07/2021, 5:23 PMRobert Jaros
05/07/2021, 5:26 PMKumaran Masilamani
05/07/2021, 5:28 PMKumaran Masilamani
05/07/2021, 5:28 PMval searchText =Text(value = state.currentSearch.keyword) {
placeholder = tr("Search...")
}
searchThingPanel = formPanel<MySearch>(
className = "form-inline main-search-panel d-flex justify-content-center",
type = FormType.INLINE
).bind(MyManager.reduxStore) { state->
add(MySearch::keyword, searchText)
Kumaran Masilamani
05/07/2021, 5:28 PMKumaran Masilamani
05/07/2021, 5:28 PMKumaran Masilamani
05/07/2021, 5:30 PMKumaran Masilamani
05/07/2021, 5:31 PMKumaran Masilamani
05/07/2021, 5:47 PM