6ca058c3a1
* support embed preference * title color
36 lines
1.1 KiB
JavaScript
36 lines
1.1 KiB
JavaScript
import { connect } from 'react-redux';
|
|
import {
|
|
doResolveUris,
|
|
makeSelectClaimForUri,
|
|
makeSelectIsUriResolving,
|
|
makeSelectTagInClaimOrChannelForUri,
|
|
parseURI,
|
|
} from 'lbry-redux';
|
|
import { makeSelectWinningUriForQuery } from 'redux/selectors/search';
|
|
import WunderbarTopSuggestion from './view';
|
|
import { PREFERENCE_EMBED } from 'constants/tags';
|
|
|
|
const select = (state, props) => {
|
|
const uriFromQuery = `lbry://${props.query}`;
|
|
|
|
let uris = [uriFromQuery];
|
|
try {
|
|
const { isChannel } = parseURI(uriFromQuery);
|
|
|
|
if (!isChannel) {
|
|
const channelUriFromQuery = `lbry://@${props.query}`;
|
|
uris.push(channelUriFromQuery);
|
|
}
|
|
} catch (e) {}
|
|
|
|
const resolvingUris = uris.some((uri) => makeSelectIsUriResolving(uri)(state));
|
|
const winningUri = makeSelectWinningUriForQuery(props.query)(state);
|
|
const winningClaim = winningUri ? makeSelectClaimForUri(winningUri)(state) : undefined;
|
|
const preferEmbed = makeSelectTagInClaimOrChannelForUri(winningUri, PREFERENCE_EMBED)(state);
|
|
|
|
return { resolvingUris, winningUri, winningClaim, uris, preferEmbed };
|
|
};
|
|
|
|
export default connect(select, {
|
|
doResolveUris,
|
|
})(WunderbarTopSuggestion);
|