diff --git a/dist/bundle.es.js b/dist/bundle.es.js index 39b13cd..5602bc7 100644 --- a/dist/bundle.es.js +++ b/dist/bundle.es.js @@ -2406,28 +2406,33 @@ const makeSelectMyStreamUrlsForPage = (page = 1) => reselect.createSelector(sele const selectMyStreamUrlsCount = reselect.createSelector(selectMyClaimUrisWithoutChannels, channels => channels.length); -const makeSelectResolvedRecommendedContentForUri = (uri, size) => reselect.createSelector(makeSelectClaimForUri(uri), selectResolvedSearchResultsByQuery, makeSelectClaimIsNsfw(uri), (claim, resolvedResultsByQuery, isMature) => { +const makeSelectResolvedRecommendedContentForUri = (uri, size, claimId, claimName, claimTitle) => reselect.createSelector(makeSelectClaimForUri(uri), selectResolvedSearchResultsByQuery, makeSelectClaimIsNsfw(uri), (claim, resolvedResultsByQuery, isMature) => { const atVanityURI = !uri.includes('#'); + let currentUri; let recommendedContent; + let title; if (claim) { // always grab full URL - this can change once search returns canonical - const currentUri = buildURI({ streamClaimId: claim.claim_id, streamName: claim.name }); + currentUri = buildURI({ streamClaimId: claim.claim_id, streamName: claim.name }); + title = claim.value ? claim.value.title : null; + } else { + // for cases on mobile where the claim may not have been resolved () + currentUri = buildURI({ streamClaimId: claimId, streamName: claimName }); + title = claimTitle; + } - const { title } = claim.value; + if (!title) { + return; + } - if (!title) { - return; - } + const options = { related_to: claim ? claim.claim_id : claimId, size, isBackgroundSearch: false }; - const options = { related_to: claim.claim_id, size, isBackgroundSearch: false }; - - const searchQuery = getSearchQueryString(title.replace(/\//, ' '), options); - let results = resolvedResultsByQuery[searchQuery]; - if (results) { - results = results.filter(result => buildURI({ streamClaimId: result.claimId, streamName: result.name }) !== currentUri); - recommendedContent = results; - } + const searchQuery = getSearchQueryString(title.replace(/\//, ' '), options); + let results = resolvedResultsByQuery[searchQuery]; + if (results) { + results = results.filter(result => buildURI({ streamClaimId: result.claimId, streamName: result.name }) !== currentUri); + recommendedContent = results; } return recommendedContent; diff --git a/src/redux/selectors/claims.js b/src/redux/selectors/claims.js index f359844..7b0c5dd 100644 --- a/src/redux/selectors/claims.js +++ b/src/redux/selectors/claims.js @@ -678,7 +678,13 @@ export const selectMyStreamUrlsCount = createSelector( channels => channels.length ); -export const makeSelectResolvedRecommendedContentForUri = (uri: string, size: number) => +export const makeSelectResolvedRecommendedContentForUri = ( + uri: string, + size: number, + claimId: string, + claimName: string, + claimTitle: string +) => createSelector( makeSelectClaimForUri(uri), selectResolvedSearchResultsByQuery, @@ -686,32 +692,37 @@ export const makeSelectResolvedRecommendedContentForUri = (uri: string, size: nu (claim, resolvedResultsByQuery, isMature) => { const atVanityURI = !uri.includes('#'); + let currentUri; let recommendedContent; + let title; if (claim) { // always grab full URL - this can change once search returns canonical - const currentUri = buildURI({ streamClaimId: claim.claim_id, streamName: claim.name }); + currentUri = buildURI({ streamClaimId: claim.claim_id, streamName: claim.name }); + title = claim.value ? claim.value.title : null; + } else { + // for cases on mobile where the claim may not have been resolved () + currentUri = buildURI({ streamClaimId: claimId, streamName: claimName }); + title = claimTitle; + } - const { title } = claim.value; + if (!title) { + return; + } - if (!title) { - return; - } + const options: { + related_to?: string, + nsfw?: boolean, + isBackgroundSearch?: boolean, + } = { related_to: claim ? claim.claim_id : claimId, size, isBackgroundSearch: false }; - const options: { - related_to?: string, - nsfw?: boolean, - isBackgroundSearch?: boolean, - } = { related_to: claim.claim_id, size, isBackgroundSearch: false }; - - const searchQuery = getSearchQueryString(title.replace(/\//, ' '), options); - let results = resolvedResultsByQuery[searchQuery]; - if (results) { - results = results.filter( - result => - buildURI({ streamClaimId: result.claimId, streamName: result.name }) !== currentUri - ); - recommendedContent = results; - } + const searchQuery = getSearchQueryString(title.replace(/\//, ' '), options); + let results = resolvedResultsByQuery[searchQuery]; + if (results) { + results = results.filter( + result => + buildURI({ streamClaimId: result.claimId, streamName: result.name }) !== currentUri + ); + recommendedContent = results; } return recommendedContent;