Grab Discover IDs from homepage API
Adds ability for homepage team to define the Discover list of IDs. If undefined, falls back to English's list. If English is also undefined, falls back to LATEST / PRIMARY.
This commit is contained in:
parent
9e18b30fdb
commit
c563889bf6
4 changed files with 22 additions and 3 deletions
|
@ -2,7 +2,7 @@ import { connect } from 'react-redux';
|
|||
import { selectFollowedTags } from 'redux/selectors/tags';
|
||||
import { selectMutedChannels } from 'redux/selectors/blocked';
|
||||
import { selectSubscriptions } from 'redux/selectors/subscriptions';
|
||||
import { selectHomepageData } from 'redux/selectors/settings';
|
||||
import { selectHomepageData, selectHomepageDiscover } from 'redux/selectors/settings';
|
||||
import ChannelsFollowingManagePage from './view';
|
||||
|
||||
const select = (state) => ({
|
||||
|
@ -10,6 +10,7 @@ const select = (state) => ({
|
|||
subscribedChannels: selectSubscriptions(state),
|
||||
blockedChannels: selectMutedChannels(state),
|
||||
homepageData: selectHomepageData(state),
|
||||
discoverData: selectHomepageDiscover(state),
|
||||
});
|
||||
|
||||
export default connect(select)(ChannelsFollowingManagePage);
|
||||
|
|
|
@ -17,6 +17,7 @@ type Props = {
|
|||
subscribedChannels: Array<Subscription>,
|
||||
blockedChannels: Array<string>,
|
||||
homepageData: any,
|
||||
discoverData: ?Array<string>,
|
||||
};
|
||||
|
||||
type ChannelsFollowingItem = {
|
||||
|
@ -27,16 +28,20 @@ type ChannelsFollowingItem = {
|
|||
};
|
||||
|
||||
function ChannelsFollowingDiscover(props: Props) {
|
||||
const { followedTags, subscribedChannels, blockedChannels, homepageData } = props;
|
||||
const { followedTags, subscribedChannels, blockedChannels, homepageData, discoverData } = props;
|
||||
const { PRIMARY_CONTENT, LATEST } = homepageData;
|
||||
|
||||
let channelIds;
|
||||
if (CUSTOM_HOMEPAGE) {
|
||||
if (discoverData) {
|
||||
channelIds = discoverData;
|
||||
} else if (CUSTOM_HOMEPAGE) {
|
||||
if (LATEST) {
|
||||
channelIds = LATEST.channelIds;
|
||||
} else if (PRIMARY_CONTENT) {
|
||||
channelIds = PRIMARY_CONTENT.channelIds;
|
||||
}
|
||||
}
|
||||
|
||||
let rowData: Array<ChannelsFollowingItem> = [];
|
||||
const notChannels = subscribedChannels
|
||||
.map(({ uri }) => uri)
|
||||
|
|
|
@ -82,6 +82,18 @@ export const selectHomepageMeme = (state) => {
|
|||
return homepages ? homepages['en'].meme || {} : {};
|
||||
};
|
||||
|
||||
export const selectHomepageDiscover = (state) => {
|
||||
const homepageCode = selectHomepageCode(state);
|
||||
const homepages = window.homepages;
|
||||
if (homepages) {
|
||||
const discover = homepages[homepageCode].discover;
|
||||
if (discover) {
|
||||
return discover;
|
||||
}
|
||||
}
|
||||
return homepages ? homepages['en'].discover || [] : [];
|
||||
};
|
||||
|
||||
export const selectHomepageAnnouncement = (state) => {
|
||||
const homepageCode = selectHomepageCode(state);
|
||||
const homepages = window.homepages;
|
||||
|
|
|
@ -65,6 +65,7 @@ const getHomepageJsonV2 = (format) => {
|
|||
v2[hp] = {
|
||||
categories: reformatV2Categories(memo.homepageData[hp].categories, format),
|
||||
meme: memo.homepageData[hp].meme,
|
||||
discover: memo.homepageData[hp].discover,
|
||||
announcement: memo.announcements[hp],
|
||||
};
|
||||
});
|
||||
|
|
Loading…
Reference in a new issue