Merge branch 'feature/add-topic-count' of 858/frontend into develop
This commit is contained in:
commit
71a14e79d9
|
@ -40,7 +40,7 @@ export function getRandomTopicVideos(allTopics, numVideos=4) {
|
|||
return dispatch => {
|
||||
const randomTopic = getRandomTopic(allTopics);
|
||||
dispatch(loadingRandomTopicVideos());
|
||||
fetchVideosByTopic(randomTopic, 0, 4)
|
||||
fetchVideosByTopic(randomTopic.name, 0, 4)
|
||||
.then(videos => {
|
||||
dispatch(loadedRandomTopicVideos(randomTopic, videos));
|
||||
});
|
||||
|
|
|
@ -21,7 +21,7 @@ class RandomTopic extends React.Component {
|
|||
See All Topics
|
||||
</Link>
|
||||
<Link to="/topics">
|
||||
See All videos of {this.props.topicName} ()
|
||||
See All videos of {this.props.topicName} ({this.props.topicCount})
|
||||
</Link>
|
||||
</Grid>
|
||||
</section>
|
||||
|
@ -33,7 +33,8 @@ class RandomTopic extends React.Component {
|
|||
RandomTopic.propTypes = {
|
||||
topicName: PropTypes.string,
|
||||
videos: PropTypes.array,
|
||||
loading: PropTypes.bool
|
||||
loading: PropTypes.bool,
|
||||
topicCount: PropTypes.number
|
||||
};
|
||||
|
||||
export default (RandomTopic);
|
|
@ -18,7 +18,6 @@ class Home extends React.Component {
|
|||
}
|
||||
|
||||
componentWillReceiveProps(nextProps) {
|
||||
console.log('nextProps', nextProps);
|
||||
// This is slightly awkward - we need to check that we have all topics,
|
||||
// But don't have a random topic yet (or at not already loading a random topic)
|
||||
if ((this.props.allTopics || nextProps.allTopics) && !this.props.loadingRandomTopic && !nextProps.loadingRandomTopic && !this.props.randomTopic) {
|
||||
|
@ -31,6 +30,7 @@ class Home extends React.Component {
|
|||
<div>
|
||||
<RandomTopic
|
||||
topicName={ this.props.randomTopic || ''}
|
||||
topicCount={ this.props.randomTopicCount }
|
||||
videos = { this.props.randomTopicVideos || [] }
|
||||
loading = { this.props.loadingAllTopics || this.props.loadingRandomTopic }
|
||||
/>
|
||||
|
@ -45,6 +45,7 @@ const mapStateToProps = state => ({
|
|||
allTopics: state.topics.allTopics,
|
||||
loadingAllTopics: state.topics.loadingAllTopics,
|
||||
randomTopic: state.topics.randomTopic,
|
||||
randomTopicCount: state.topics.randomTopicCount,
|
||||
loadingRandomTopic: state.topics.loadingRandomTopic,
|
||||
randomTopicVideos: state.topics.randomTopicVideos
|
||||
});
|
||||
|
|
|
@ -25,7 +25,8 @@ export default function(state={}, action) {
|
|||
case LOADED_RANDOM_TOPIC:
|
||||
return Object.assign({}, state, {
|
||||
loadingRandomTopic: false,
|
||||
randomTopic: action.payload.topic,
|
||||
randomTopic: action.payload.topic.name,
|
||||
randomTopicCount: action.payload.topic.items,
|
||||
randomTopicVideos: action.payload.videos
|
||||
});
|
||||
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
|
||||
export default function getRandomTopic(allTopics, minVideos=4) {
|
||||
const validTopics = allTopics.filter(topic => topic.items >= minVideos);
|
||||
console.log('valid topics', validTopics);
|
||||
return validTopics[Math.floor(Math.random() * validTopics.length)].name;
|
||||
return validTopics[Math.floor(Math.random() * validTopics.length)];
|
||||
}
|
Loading…
Reference in New Issue
Block a user