handle cases where no claim object is present

This commit is contained in:
Akinwale Ariwodola 2020-03-10 21:54:49 +01:00
parent 0ce0cf1de3
commit f6e99498d2
2 changed files with 49 additions and 33 deletions

31
dist/bundle.es.js vendored
View file

@ -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;

View file

@ -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;