From 774ff701a93928ef0c2ab4889e0bddd2627f8ca0 Mon Sep 17 00:00:00 2001 From: James Barnsley Date: Thu, 15 Jun 2017 08:41:55 +1200 Subject: [PATCH] Discover URL as a URI with _ instead of : --- src/js/components/Track.js | 12 +++++++----- src/js/helpers.js | 7 +++++++ src/js/views/discover/DiscoverRecommendations.js | 13 +++++++++++-- 3 files changed, 25 insertions(+), 7 deletions(-) diff --git a/src/js/components/Track.js b/src/js/components/Track.js index 6dde451c..20d6d7e9 100755 --- a/src/js/components/Track.js +++ b/src/js/components/Track.js @@ -67,13 +67,15 @@ export default class Track extends React.Component{ ) } else if (this.props.context == 'queue'){ - var type = (track.added_from ? helpers.uriType(track.added_from) : null) if (track.added_from && track.added_by){ - var added = {track.added_by} (from {type}) - - } else if (track.added_from){ - var added = (from {type}) + var type = (track.added_from ? helpers.uriType(track.added_from) : null) + if (type == 'discover'){ + var link = discover + } else { + var link = {type} + } + var added = {track.added_by} (from {link}) } else if (track.added_by){ var added = track.added_by diff --git a/src/js/helpers.js b/src/js/helpers.js index e055b035..a43c4b0b 100755 --- a/src/js/helpers.js +++ b/src/js/helpers.js @@ -209,6 +209,12 @@ export let getFromUri = function(element,uri){ return exploded[2] } break + + case 'seeds': + if (exploded[1] == 'discover'){ + return exploded[2] + } + break } return null } @@ -232,6 +238,7 @@ export let uriType = function( uri ){ case 'playlist': case 'search': case 'genre': + case 'discover': return exploded[1] break diff --git a/src/js/views/discover/DiscoverRecommendations.js b/src/js/views/discover/DiscoverRecommendations.js index 33e173d3..93d9fd7a 100755 --- a/src/js/views/discover/DiscoverRecommendations.js +++ b/src/js/views/discover/DiscoverRecommendations.js @@ -66,7 +66,11 @@ class Discover extends React.Component{ } handleURLSeeds(seeds_string = this.props.params.seeds){ - var seeds = seeds_string.split(',') + + // Rejoin if we've had to uri-encode these as strings + // We'd need to do this if our URL has been encoded so the whole URL can become + // it's own URI (eg iris:discover:spotify_artist_1234) where we can't use ":" + var seeds = seeds_string.split('_').join(':').split(',') for (var i = 0; i < seeds.length; i++){ switch (helpers.uriType(seeds[i])){ @@ -198,6 +202,11 @@ class Discover extends React.Component{ } } } + + var uri = 'iris:discover' + if (this.props.params.seeds){ + uri += ':'+this.props.params.seeds.split(':').join('_') + } return (
@@ -211,7 +220,7 @@ class Discover extends React.Component{

Tracks

- {this.props.recommendations.tracks ? : null} + {this.props.recommendations.tracks ? : null}
)