lbry-desktop/ui/js/selectors/search.js

81 lines
1.8 KiB
JavaScript
Raw Normal View History

2017-04-24 16:17:36 +02:00
import { createSelector } from 'reselect'
2017-05-07 14:50:32 +02:00
import {
selectPageTitle,
selectCurrentPage,
selectCurrentUri
2017-05-07 14:50:32 +02:00
} from 'selectors/app'
2017-04-24 16:17:36 +02:00
export const _selectState = state => state.search || {}
export const selectSearchQuery = createSelector(
2017-05-12 01:28:43 +02:00
_selectState,
(state) => state.query
)
2017-04-24 16:17:36 +02:00
export const selectIsSearching = createSelector(
_selectState,
(state) => !!state.searching
)
export const selectSearchResults = createSelector(
_selectState,
(state) => state.results || {}
)
export const selectSearchResultsByQuery = createSelector(
selectSearchResults,
(results) => results.byQuery || {}
)
export const selectCurrentSearchResults = createSelector(
selectSearchQuery,
selectSearchResultsByQuery,
(query, byQuery) => byQuery[query]
2017-04-24 16:17:36 +02:00
)
2017-05-07 14:50:32 +02:00
export const selectWunderBarAddress = createSelector(
2017-05-12 01:28:43 +02:00
selectCurrentPage,
selectPageTitle,
2017-05-07 14:50:32 +02:00
selectSearchQuery,
2017-05-12 01:28:43 +02:00
(page, title, query) => page != "search" ? title : (query ? query : title)
)
2017-05-07 14:50:32 +02:00
export const selectWunderBarIcon = createSelector(
selectCurrentPage,
selectCurrentUri,
(page, uri) => {
switch (page) {
case 'search':
return 'icon-search'
case 'settings':
return 'icon-gear'
case 'help':
return 'icon-question'
case 'report':
return 'icon-file'
case 'downloaded':
return 'icon-folder'
case 'published':
return 'icon-folder'
case 'start':
return 'icon-file'
case 'rewards':
return 'icon-bank'
case 'wallet':
case 'send':
case 'receive':
return 'icon-bank'
case 'show':
return 'icon-file'
case 'publish':
return 'icon-upload'
case 'developer':
return 'icon-file'
case 'developer':
return 'icon-code'
case 'discover':
return 'icon-home'
}
2017-05-07 14:50:32 +02:00
}
)