forked from WorldBrain/Memex
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathepics.ts
52 lines (48 loc) · 2.13 KB
/
epics.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
import 'rxjs/add/operator/debounceTime'
import 'rxjs/add/operator/map'
import 'rxjs/add/operator/filter'
import { acts as searchBarActs } from 'src/overview/search-bar'
import { acts as resultActs } from 'src/overview/results'
import { actions as filterActs } from 'src/search-filters'
import { actions as sidebarActs } from 'src/sidebar-overlay/sidebar'
const searchUpdateActions = [
searchBarActs.setQuery.getType(),
searchBarActs.setStartDate.getType(),
searchBarActs.setEndDate.getType(),
filterActs.toggleBookmarkFilter.getType(),
filterActs.addTagFilter.getType(),
filterActs.delTagFilter.getType(),
filterActs.addExcTagFilter.getType(),
filterActs.delExcTagFilter.getType(),
filterActs.toggleTagFilter.getType(),
filterActs.addIncDomainFilter.getType(),
filterActs.addExcDomainFilter.getType(),
filterActs.delIncDomainFilter.getType(),
filterActs.delExcDomainFilter.getType(),
filterActs.setIncDomainFilters.getType(),
filterActs.setExcDomainFilters.getType(),
filterActs.setTagFilters.getType(),
filterActs.setExcTagFilters.getType(),
filterActs.resetFilters.getType(),
filterActs.toggleListFilter.getType(),
filterActs.delListFilter.getType(),
filterActs.toggleHighlightsFilter.getType(),
filterActs.toggleNotesFilter.getType(),
filterActs.toggleWebsitesFilter.getType(),
filterActs.setAnnotationsFilter.getType(),
filterActs.clearFilterTypes.getType(),
resultActs.setSearchType.getType(),
]
// When the query changed, refresh the search results
export const refreshSearchResultsUponQueryChange = action$ =>
action$
.filter(action => searchUpdateActions.includes(action.type))
.debounceTime(500) // wait until typing stops for 500ms
.map(() =>
searchBarActs.search({ overwrite: true, fromOverview: false }),
) // Schedule new fresh (overwriting) search
export const refreshSidebarSearchResultsUponQueryChange = action$ =>
action$
.filter(action => searchUpdateActions.includes(action.type))
.debounceTime(500) // wait until typing stops for 500ms
.map(() => sidebarActs.searchAnnotations())