~Final~ Discovery fixes/cleanup #2599
2 changed files with 12 additions and 2 deletions
|
@ -1,12 +1,15 @@
|
||||||
|
import * as SETTINGS from 'constants/settings';
|
||||||
import { connect } from 'react-redux';
|
import { connect } from 'react-redux';
|
||||||
import { doClaimSearch, selectLastClaimSearchUris, selectFetchingClaimSearch, doToggleTagFollow } from 'lbry-redux';
|
import { doClaimSearch, selectLastClaimSearchUris, selectFetchingClaimSearch, doToggleTagFollow } from 'lbry-redux';
|
||||||
import { selectSubscriptions } from 'redux/selectors/subscriptions';
|
import { selectSubscriptions } from 'redux/selectors/subscriptions';
|
||||||
|
import { makeSelectClientSetting } from 'redux/selectors/settings';
|
||||||
import ClaimListDiscover from './view';
|
import ClaimListDiscover from './view';
|
||||||
|
|
||||||
const select = state => ({
|
const select = state => ({
|
||||||
uris: selectLastClaimSearchUris(state),
|
uris: selectLastClaimSearchUris(state),
|
||||||
loading: selectFetchingClaimSearch(state),
|
loading: selectFetchingClaimSearch(state),
|
||||||
subscribedChannels: selectSubscriptions(state),
|
subscribedChannels: selectSubscriptions(state),
|
||||||
|
showNsfw: makeSelectClientSetting(SETTINGS.SHOW_NSFW)(state),
|
||||||
});
|
});
|
||||||
|
|
||||||
const perform = {
|
const perform = {
|
||||||
|
|
|
@ -3,6 +3,7 @@ import type { Node } from 'react';
|
||||||
import React, { useEffect, useState } from 'react';
|
import React, { useEffect, useState } from 'react';
|
||||||
import moment from 'moment';
|
import moment from 'moment';
|
||||||
import usePersistedState from 'util/use-persisted-state';
|
import usePersistedState from 'util/use-persisted-state';
|
||||||
|
import { MATURE_TAGS } from 'lbry-redux';
|
||||||
import { FormField } from 'component/common/form';
|
import { FormField } from 'component/common/form';
|
||||||
import ClaimList from 'component/claimList';
|
import ClaimList from 'component/claimList';
|
||||||
import Tag from 'component/tag';
|
import Tag from 'component/tag';
|
||||||
|
@ -35,10 +36,11 @@ type Props = {
|
||||||
personal: boolean,
|
personal: boolean,
|
||||||
doToggleTagFollow: string => void,
|
doToggleTagFollow: string => void,
|
||||||
meta?: Node,
|
meta?: Node,
|
||||||
|
showNsfw: boolean,
|
||||||
};
|
};
|
||||||
|
|
||||||
function ClaimListDiscover(props: Props) {
|
function ClaimListDiscover(props: Props) {
|
||||||
const { doClaimSearch, uris, tags, loading, personal, injectedItem, meta, subscribedChannels } = props;
|
const { doClaimSearch, uris, tags, loading, personal, injectedItem, meta, subscribedChannels, showNsfw } = props;
|
||||||
const [personalSort, setPersonalSort] = usePersistedState('claim-list-discover:personalSort', SEARCH_SORT_YOU);
|
const [personalSort, setPersonalSort] = usePersistedState('claim-list-discover:personalSort', SEARCH_SORT_YOU);
|
||||||
const [typeSort, setTypeSort] = usePersistedState('claim-list-discover:typeSort', TYPE_TRENDING);
|
const [typeSort, setTypeSort] = usePersistedState('claim-list-discover:typeSort', TYPE_TRENDING);
|
||||||
const [timeSort, setTimeSort] = usePersistedState('claim-list-discover:timeSort', TIME_WEEK);
|
const [timeSort, setTimeSort] = usePersistedState('claim-list-discover:timeSort', TIME_WEEK);
|
||||||
|
@ -54,6 +56,7 @@ function ClaimListDiscover(props: Props) {
|
||||||
order_by?: Array<string>,
|
order_by?: Array<string>,
|
||||||
channel_ids?: Array<string>,
|
channel_ids?: Array<string>,
|
||||||
release_time?: string,
|
release_time?: string,
|
||||||
|
not_tags?: Array<string>,
|
||||||
} = { page_size: PAGE_SIZE, page };
|
} = { page_size: PAGE_SIZE, page };
|
||||||
const newTags = tagsString.split(',');
|
const newTags = tagsString.split(',');
|
||||||
const newChannelIds = channelsIdString.split(',');
|
const newChannelIds = channelsIdString.split(',');
|
||||||
|
@ -64,6 +67,10 @@ function ClaimListDiscover(props: Props) {
|
||||||
options.channel_ids = newChannelIds;
|
options.channel_ids = newChannelIds;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!showNsfw) {
|
||||||
|
options.not_tags = MATURE_TAGS;
|
||||||
|
}
|
||||||
|
|
||||||
if (typeSort === TYPE_TRENDING) {
|
if (typeSort === TYPE_TRENDING) {
|
||||||
options.order_by = ['trending_global', 'trending_mixed'];
|
options.order_by = ['trending_global', 'trending_mixed'];
|
||||||
} else if (typeSort === TYPE_NEW) {
|
} else if (typeSort === TYPE_NEW) {
|
||||||
|
@ -81,7 +88,7 @@ function ClaimListDiscover(props: Props) {
|
||||||
}
|
}
|
||||||
|
|
||||||
doClaimSearch(20, options);
|
doClaimSearch(20, options);
|
||||||
}, [personal, personalSort, typeSort, timeSort, doClaimSearch, page, tagsString, channelsIdString]);
|
}, [personal, personalSort, typeSort, timeSort, doClaimSearch, page, tagsString, channelsIdString, showNsfw]);
|
||||||
|
|
||||||
function getLabel(type) {
|
function getLabel(type) {
|
||||||
if (type === SEARCH_SORT_ALL) {
|
if (type === SEARCH_SORT_ALL) {
|
||||||
|
|
Loading…
Reference in a new issue