Manual control
To wait until Findify is loaded push you callbacks into
window.findifyCallbacks
array.window.findifyCallbacks = [ (findify) => ...your code here ]
Findify' integration script exports to window.findify
some API, which allows managing widgets, listen and trigger events and use analytics externally.
Element | Description |
---|---|
findify.analytics | The @findify/analytics instance. It allows triggering events from outside components and listens for them. |
findify.config | The immutable configuration of your store. Use findify.config.toJS() to see it as normal Javascript object. |
findify.emit | Emit system events, such as 'show mobile facets' |
findify.listen | Listen for system events |
findify.invalidate | Invalidates modules cache[only for Devtools] |
findify.widgets | The collection of methods to create/modify already injected widgets. Read more below |
Manage widgets
Attach new widget
window.findify.widgets.attach(selector, type, config)
selector | CSS selector or DOM node where to attach the widget |
type | The type of widget - autocomplete , recommendation , search , smart-collection |
config | The configuration which will extend the default configuration for this type of widget eq:{ appendTo: 'body', key: 'test' } |
Remove exist widget
window.findify.widgets.detach(key)
The key
is the unique name of the widget, you could provide it in HTML element by adding data-findify-key="test"
or in config when attaching feature
Get widgets by key
window.findify.widgets.get(key)
You can get widget by its key. If it was not provided the increment number will be used.
Find widgets by type
window.findify.widgets.findByType(type)
Find all widgets with given type
Get list of widgets
window.findify.list()
This function will return an array of widgets on the page, so you can access their agents and send a request by your own.
window.findify.widgets
.find(widget => widget.type === 'autocomplete').agent
.set('q', 'test query')
.on('suggestions', (list) => {
console.log(list)
})
Updated over 6 years ago