From 7782fa572ce860da4d1be1f07f5ea57f2bdf15f9 Mon Sep 17 00:00:00 2001 From: James Barnsley Date: Fri, 2 Jun 2017 10:38:12 +1200 Subject: [PATCH] URL Params as seeds --- .../views/discover/DiscoverRecommendations.js | 45 +++++++++++-------- 1 file changed, 26 insertions(+), 19 deletions(-) diff --git a/src/js/views/discover/DiscoverRecommendations.js b/src/js/views/discover/DiscoverRecommendations.js index 0675d05c..33e173d3 100755 --- a/src/js/views/discover/DiscoverRecommendations.js +++ b/src/js/views/discover/DiscoverRecommendations.js @@ -34,25 +34,7 @@ class Discover extends React.Component{ // We have seeds provided in the URL if (this.props.params.seeds){ - - var seeds = this.props.params.seeds.split(',') - // TODO: lookup these seeds - - for (var i = 0; i < seeds.length; i++){ - switch (helpers.uriType(seeds[i])){ - - case 'artist': - this.props.spotifyActions.getArtist(seeds[i]) - break - - case 'track': - this.props.spotifyActions.getTrack(seeds[i]) - break - } - } - - this.setState({seeds: seeds}) - this.getRecommendations(seeds) + this.handleURLSeeds(this.props.params.seeds) // BAU } else { @@ -66,6 +48,11 @@ class Discover extends React.Component{ componentWillReceiveProps(newProps, newState){ + // New seeds via URL + if (newProps.params.seeds != this.props.params.seeds){ + this.handleURLSeeds(newProps.params.seeds) + } + // When we've loaded favorite_artists. // This indirectly listens for when the action has // loaded new data. @@ -78,6 +65,26 @@ class Discover extends React.Component{ } } + handleURLSeeds(seeds_string = this.props.params.seeds){ + var seeds = seeds_string.split(',') + + for (var i = 0; i < seeds.length; i++){ + switch (helpers.uriType(seeds[i])){ + + case 'artist': + this.props.spotifyActions.getArtist(seeds[i]) + break + + case 'track': + this.props.spotifyActions.getTrack(seeds[i]) + break + } + } + + this.setState({seeds: seeds}) + this.getRecommendations(seeds) + } + getRecommendations(seeds = this.state.seeds){ if (seeds.length > 0){ this.props.spotifyActions.getRecommendations(seeds, 50)