SearchField
(extends KompElement)
An input with debounced search and results display via floater or inline list. Provide a search function that returns results, and optionally a renderResult function to customize how each result is displayed.
Example
Syntax
new SearchField({
placeholder: 'Search...',
search: async (query) => {
const response = await fetch(`/api/search?q=${query}`);
return response.json();
},
result: (item) => item.name,
select: (item, query) => console.log(item)
})
HTML
<komp-search-field placeholder="Search..."></komp-search-field>
Options
search: parameters: [query:String] return: Promise| types | description | |
|---|---|---|
content
|
String, HTMLElement, Array, Object |
content to append to element. Passed to Dolla's |
Assignable Methods
| parameters | return | description | |
|---|---|---|---|
renderResult
|
["result:Any"] | String, HTMLElement |
renders a single result item as a button |
renderResults
|
["results:Array"] | Array |
renders the full results list, including empty state |
Events
| arguments | description | |
|---|---|---|
beforeRemove
|
[] |
called before element is removed |
afterRemove
|
[] |
called after element is removed |
beforeConnect
|
[] |
called before element is connected |
afterConnect
|
[] |
called before element is connected |
beforeDisconnect
|
[] |
called before element is disconnected |
afterDisconnect
|
[] |
called before element is disconnected |
select
|
["result", "query", "event"] |
fired when a result is selected |
search
|
["query"] |
fired when a search is performed |
results
|
["results", "query"] |
fired when results are rendered |