- Search value is submit via BangInput
- Keyboard input dispatch
SET_SEARCH_VALUE
action - The action trigger
sdkQueryValueEmitter
saga effect for push search value in their consumers with SearchProvider.query - The forked
sdkSearchProvider
effect (run in background) transformresults
andquery
RxJS subscriptions into a Saga events source using channels- Each time that results are received, we send them into
produceResults
for a suit of data manipulations:- Serialization: the plugin and saga middleware is in the main, the results are displayed in the renderer so we need to store callbacks and serialize results
- Build Top-Hits: with fuse and frecency we are able to sort results with relevance
- Organize results
- Organized results are dispatched with
SET_SEARCH_RESULTS
action - Dispatching a SET_SEARCH_RESULTS action will update state.bang.results
- Modifying state.bang.results will trigger a rerender of the BangList component
- Each time that results are received, we send them into