From f6e99498d2bc5b3f07e1e2b6f668a1a48de35047 Mon Sep 17 00:00:00 2001 From: Akinwale Ariwodola <akinwale@gmail.com> Date: Tue, 10 Mar 2020 21:54:49 +0100 Subject: [PATCH 1/4] handle cases where no claim object is present --- dist/bundle.es.js | 31 ++++++++++++--------- src/redux/selectors/claims.js | 51 +++++++++++++++++++++-------------- 2 files changed, 49 insertions(+), 33 deletions(-) diff --git a/dist/bundle.es.js b/dist/bundle.es.js index 39b13cd..7f367b7 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 }); const { title } = claim.value; + } else { + // for cases on mobile where the claim may not have been resolved () + currentUri = buildURI({ streamClaimId: claimId, streamName: claimName }); + title = claimTitle; + } - if (!title) { - return; - } + if (!title) { + return; + } - const options = { related_to: claim.claim_id, size, isBackgroundSearch: false }; + const options = { related_to: claim ? claim.claim_id : claimId, 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(claimTitle.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..d9b893c 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 }); const { title } = claim.value; + } else { + // for cases on mobile where the claim may not have been resolved () + currentUri = buildURI({ streamClaimId: claimId, streamName: claimName }); + title = claimTitle; + } - if (!title) { - return; - } + if (!title) { + return; + } - const options: { - related_to?: string, - nsfw?: boolean, - isBackgroundSearch?: boolean, - } = { related_to: claim.claim_id, size, isBackgroundSearch: false }; + const options: { + related_to?: string, + nsfw?: boolean, + isBackgroundSearch?: boolean, + } = { related_to: claim ? claim.claim_id : claimId, 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(claimTitle.replace(/\//, ' '), options); + let results = resolvedResultsByQuery[searchQuery]; + if (results) { + results = results.filter( + result => + buildURI({ streamClaimId: result.claimId, streamName: result.name }) !== currentUri + ); + recommendedContent = results; } return recommendedContent; From c86309884241d0512b39232fb981a0036f5db92d Mon Sep 17 00:00:00 2001 From: Akinwale Ariwodola <akinwale@gmail.com> Date: Fri, 13 Mar 2020 17:26:31 +0100 Subject: [PATCH 2/4] fix variable --- src/redux/selectors/claims.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/redux/selectors/claims.js b/src/redux/selectors/claims.js index d9b893c..f84fce3 100644 --- a/src/redux/selectors/claims.js +++ b/src/redux/selectors/claims.js @@ -715,7 +715,7 @@ export const makeSelectResolvedRecommendedContentForUri = ( isBackgroundSearch?: boolean, } = { related_to: claim ? claim.claim_id : claimId, size, isBackgroundSearch: false }; - const searchQuery = getSearchQueryString(claimTitle.replace(/\//, ' '), options); + const searchQuery = getSearchQueryString(title.replace(/\//, ' '), options); let results = resolvedResultsByQuery[searchQuery]; if (results) { results = results.filter( From 91c60558c63c2b59a0ee2cbbf1ed69d10f649a25 Mon Sep 17 00:00:00 2001 From: Akinwale Ariwodola <akinwale@gmail.com> Date: Fri, 13 Mar 2020 17:32:37 +0100 Subject: [PATCH 3/4] update bundle --- dist/bundle.es.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dist/bundle.es.js b/dist/bundle.es.js index 7f367b7..1c72cf9 100644 --- a/dist/bundle.es.js +++ b/dist/bundle.es.js @@ -2428,7 +2428,7 @@ const makeSelectResolvedRecommendedContentForUri = (uri, size, claimId, claimNam const options = { related_to: claim ? claim.claim_id : claimId, size, isBackgroundSearch: false }; - const searchQuery = getSearchQueryString(claimTitle.replace(/\//, ' '), options); + const searchQuery = getSearchQueryString(title.replace(/\//, ' '), options); let results = resolvedResultsByQuery[searchQuery]; if (results) { results = results.filter(result => buildURI({ streamClaimId: result.claimId, streamName: result.name }) !== currentUri); From 84e697079968364fe526020086c8a44f4d2ef391 Mon Sep 17 00:00:00 2001 From: Akinwale Ariwodola <akinwale@gmail.com> Date: Fri, 13 Mar 2020 17:35:54 +0100 Subject: [PATCH 4/4] get the title properly --- dist/bundle.es.js | 2 +- src/redux/selectors/claims.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dist/bundle.es.js b/dist/bundle.es.js index 1c72cf9..5602bc7 100644 --- a/dist/bundle.es.js +++ b/dist/bundle.es.js @@ -2415,7 +2415,7 @@ const makeSelectResolvedRecommendedContentForUri = (uri, size, claimId, claimNam if (claim) { // always grab full URL - this can change once search returns canonical currentUri = buildURI({ streamClaimId: claim.claim_id, streamName: claim.name }); - const { title } = claim.value; + 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 }); diff --git a/src/redux/selectors/claims.js b/src/redux/selectors/claims.js index f84fce3..7b0c5dd 100644 --- a/src/redux/selectors/claims.js +++ b/src/redux/selectors/claims.js @@ -698,7 +698,7 @@ export const makeSelectResolvedRecommendedContentForUri = ( if (claim) { // always grab full URL - this can change once search returns canonical currentUri = buildURI({ streamClaimId: claim.claim_id, streamName: claim.name }); - const { title } = claim.value; + 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 });