Radio seeds now showing in 'Added from'
This commit is contained in:
@ -69848,18 +69848,19 @@ var uriType = exports.uriType = function uriType(uri) {
|
||||
|
||||
var exploded = uri.split(':');
|
||||
|
||||
if (exploded[0] == 'm3u') {
|
||||
if (exploded[0] === 'm3u') {
|
||||
return 'playlist';
|
||||
}
|
||||
|
||||
if (exploded[0] == 'iris') {
|
||||
if (exploded[0] === 'iris') {
|
||||
switch (exploded[1]) {
|
||||
case 'search':
|
||||
case 'discover':
|
||||
case 'browse':
|
||||
case 'radio':
|
||||
return exploded[1];
|
||||
break;
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@ -69870,14 +69871,13 @@ var uriType = exports.uriType = function uriType(uri) {
|
||||
case 'playlist':
|
||||
case 'genre':
|
||||
return exploded[1];
|
||||
break;
|
||||
|
||||
case 'user':
|
||||
if (exploded.length > 3 && exploded[3] == 'playlist') {
|
||||
return 'playlist';
|
||||
}
|
||||
return exploded[1];
|
||||
break;
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
};
|
||||
|
||||
@ -69974,6 +69974,11 @@ var getFromUri = exports.getFromUri = function getFromUri(element) {
|
||||
case 'seeds':
|
||||
if (exploded[1] == 'discover') {
|
||||
return exploded[2];
|
||||
} else if (exploded[1] === 'radio') {
|
||||
var seeds = exploded[2].split(',');
|
||||
return seeds.map(function (seed) {
|
||||
return seed.replace(/_/gi, ':');
|
||||
});
|
||||
}
|
||||
break;
|
||||
|
||||
@ -69988,8 +69993,10 @@ var getFromUri = exports.getFromUri = function getFromUri(element) {
|
||||
return exploded[2];
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
return null;
|
||||
};
|
||||
|
||||
/**
|
||||
@ -77726,6 +77733,10 @@ var PusherMiddleware = function () {
|
||||
type: 'PUSHER_RADIO_LOADED',
|
||||
radio: response.radio
|
||||
});
|
||||
|
||||
if (response.radio.enabled) {
|
||||
store.dispatch(spotifyActions.resolveRadioSeeds(response.radio));
|
||||
}
|
||||
}, function (error) {
|
||||
store.dispatch(coreActions.handleException('Could not load radio', error));
|
||||
});
|
||||
@ -84954,6 +84965,8 @@ var Queue = function (_React$Component) {
|
||||
case 'playlist':
|
||||
coreActions.loadPlaylist(next_added_from_uri);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -85015,7 +85028,6 @@ var Queue = function (_React$Component) {
|
||||
value: function renderQueueStats() {
|
||||
var current_tracklist = this.props.current_tracklist;
|
||||
|
||||
var total_time = 0;
|
||||
|
||||
return _react2.default.createElement(
|
||||
'div',
|
||||
@ -85023,7 +85035,7 @@ var Queue = function (_React$Component) {
|
||||
_react2.default.createElement(
|
||||
'span',
|
||||
null,
|
||||
current_tracklist.length + ' tracks'
|
||||
(current_tracklist.length || 0) + ' tracks'
|
||||
),
|
||||
'\xA0\xA0|\xA0\xA0',
|
||||
current_tracklist.length > 0 ? _react2.default.createElement(_Dater2.default, { type: 'total-time', data: current_tracklist }) : _react2.default.createElement(
|
||||
@ -85036,23 +85048,14 @@ var Queue = function (_React$Component) {
|
||||
}, {
|
||||
key: 'renderArtwork',
|
||||
value: function renderArtwork(image) {
|
||||
var _props4 = this.props,
|
||||
radio_enabled = _props4.radio_enabled,
|
||||
current_track = _props4.current_track;
|
||||
var current_track = this.props.current_track;
|
||||
|
||||
|
||||
if (!image) {
|
||||
return _react2.default.createElement(
|
||||
'div',
|
||||
{
|
||||
className: 'current-track__artwork ' + (radio_enabled ? 'current-track__artwork--radio-enabled' : '')
|
||||
},
|
||||
radio_enabled ? _react2.default.createElement('img', {
|
||||
className: 'radio-overlay',
|
||||
src: '/iris/assets/radio-overlay.png',
|
||||
alt: ''
|
||||
}) : null,
|
||||
_react2.default.createElement(_Thumbnail2.default, { glow: true, circle: radio_enabled })
|
||||
{ className: 'current-track__artwork' },
|
||||
_react2.default.createElement(_Thumbnail2.default, { glow: true })
|
||||
);
|
||||
}
|
||||
|
||||
@ -85062,18 +85065,11 @@ var Queue = function (_React$Component) {
|
||||
}
|
||||
return _react2.default.createElement(
|
||||
'div',
|
||||
{
|
||||
className: 'current-track__artwork ' + (radio_enabled ? 'current-track__artwork--radio-enabled' : '')
|
||||
},
|
||||
{ className: 'current-track__artwork' },
|
||||
_react2.default.createElement(
|
||||
_URILink2.default,
|
||||
{ type: 'album', uri: uri },
|
||||
radio_enabled ? _react2.default.createElement('img', {
|
||||
className: 'radio-overlay',
|
||||
src: '/iris/assets/radio-overlay.png',
|
||||
alt: ''
|
||||
}) : null,
|
||||
_react2.default.createElement(_Thumbnail2.default, { glow: true, image: image, circle: radio_enabled })
|
||||
_react2.default.createElement(_Thumbnail2.default, { glow: true, image: image })
|
||||
)
|
||||
);
|
||||
}
|
||||
@ -85084,11 +85080,24 @@ var Queue = function (_React$Component) {
|
||||
|
||||
if (!added_from_uri) return null;
|
||||
|
||||
var item_type = helpers.uriType(added_from_uri);
|
||||
var uri_type = helpers.uriType(added_from_uri);
|
||||
var item_uri = added_from_uri;
|
||||
var item_type = uri_type;
|
||||
|
||||
// Radio nests it's seed URIs in an encoded URI format
|
||||
if (uri_type === 'radio') {
|
||||
var radio_seeds = helpers.getFromUri('seeds', added_from_uri);
|
||||
|
||||
// For now we only care about the first seed
|
||||
// TODO: Support for multiple seeds
|
||||
item_uri = radio_seeds[0];
|
||||
item_type = helpers.uriType(item_uri);
|
||||
}
|
||||
|
||||
var item_library = this.props[item_type + 's'];
|
||||
if (!item_library) return null;
|
||||
|
||||
var item = item_library[added_from_uri];
|
||||
var item = item_library[item_uri];
|
||||
if (!item) return null;
|
||||
|
||||
return _react2.default.createElement(
|
||||
@ -85115,6 +85124,11 @@ var Queue = function (_React$Component) {
|
||||
_URILink2.default,
|
||||
{ type: item_type, uri: item.uri },
|
||||
item.name
|
||||
),
|
||||
uri_type === 'radio' && _react2.default.createElement(
|
||||
'span',
|
||||
null,
|
||||
' radio'
|
||||
)
|
||||
)
|
||||
);
|
||||
@ -85124,9 +85138,9 @@ var Queue = function (_React$Component) {
|
||||
value: function render() {
|
||||
var _this2 = this;
|
||||
|
||||
var _props5 = this.props,
|
||||
current_track = _props5.current_track,
|
||||
queue_tracks = _props5.queue_tracks;
|
||||
var _props4 = this.props,
|
||||
current_track = _props4.current_track,
|
||||
queue_tracks = _props4.queue_tracks;
|
||||
var limit = this.state.limit;
|
||||
|
||||
var total_queue_tracks = queue_tracks.length;
|
||||
@ -85337,6 +85351,7 @@ var mapStateToProps = function mapStateToProps(state, ownProps) {
|
||||
artists: state.core.artists,
|
||||
albums: state.core.albums,
|
||||
playlists: state.core.playlists,
|
||||
tracks: state.core.tracks,
|
||||
queue_tracks: queue_tracks,
|
||||
current_track_uri: state.core.current_track_uri,
|
||||
current_track: current_track,
|
||||
@ -93394,7 +93409,6 @@ var EditRadio = function (_React$Component) {
|
||||
value: function loadRadio(radio) {
|
||||
var seeds = [].concat(_toConsumableArray(radio.seed_tracks), _toConsumableArray(radio.seed_artists), _toConsumableArray(radio.seed_genres));
|
||||
this.setState({ seeds: seeds, enabled: radio.enabled });
|
||||
this.props.spotifyActions.resolveRadioSeeds(radio);
|
||||
}
|
||||
}, {
|
||||
key: 'handleStart',
|
||||
|
||||
File diff suppressed because one or more lines are too long
@ -100,7 +100,7 @@
|
||||
|
||||
// Release details
|
||||
// These are automatically injected to built HTML
|
||||
var build = "1569876694";
|
||||
var build = "1570045026";
|
||||
var version = "3.40.0";
|
||||
|
||||
// Construct the script tag
|
||||
|
||||
@ -1022,36 +1022,36 @@ export const uriType = function (uri) {
|
||||
|
||||
const exploded = uri.split(':');
|
||||
|
||||
if (exploded[0] == 'm3u') {
|
||||
if (exploded[0] === 'm3u') {
|
||||
return 'playlist';
|
||||
}
|
||||
|
||||
if (exploded[0] == 'iris') {
|
||||
switch (exploded[1]) {
|
||||
case 'search':
|
||||
case 'discover':
|
||||
case 'browse':
|
||||
case 'radio':
|
||||
return exploded[1];
|
||||
break;
|
||||
}
|
||||
if (exploded[0] === 'iris') {
|
||||
switch (exploded[1]) {
|
||||
case 'search':
|
||||
case 'discover':
|
||||
case 'browse':
|
||||
case 'radio':
|
||||
return exploded[1];
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
switch (exploded[1]) {
|
||||
case 'track':
|
||||
case 'artist':
|
||||
case 'album':
|
||||
case 'playlist':
|
||||
case 'genre':
|
||||
return exploded[1];
|
||||
break;
|
||||
|
||||
case 'user':
|
||||
if (exploded.length > 3 && exploded[3] == 'playlist') {
|
||||
return 'playlist';
|
||||
}
|
||||
return exploded[1];
|
||||
break;
|
||||
case 'track':
|
||||
case 'artist':
|
||||
case 'album':
|
||||
case 'playlist':
|
||||
case 'genre':
|
||||
return exploded[1];
|
||||
case 'user':
|
||||
if (exploded.length > 3 && exploded[3] == 'playlist') {
|
||||
return 'playlist';
|
||||
}
|
||||
return exploded[1];
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
};
|
||||
|
||||
@ -1094,74 +1094,79 @@ export const getFromUri = function (element, uri = '') {
|
||||
const namespace = exploded[0];
|
||||
|
||||
switch (element) {
|
||||
case 'mbid':
|
||||
var index = exploded.indexOf('mbid');
|
||||
if (index > -1) return exploded[index + 1];
|
||||
break;
|
||||
case 'mbid':
|
||||
var index = exploded.indexOf('mbid');
|
||||
if (index > -1) return exploded[index + 1];
|
||||
break;
|
||||
|
||||
case 'artistid':
|
||||
if (exploded[1] == 'artist') {
|
||||
return exploded[2];
|
||||
}
|
||||
break;
|
||||
|
||||
case 'albumid':
|
||||
if (exploded[1] == 'album') {
|
||||
return exploded[2];
|
||||
}
|
||||
break;
|
||||
|
||||
case 'playlistid':
|
||||
if (exploded[1] == 'playlist') {
|
||||
return exploded[2];
|
||||
} if (exploded[1] == 'user' && exploded[3] == 'playlist') {
|
||||
return exploded[4];
|
||||
}
|
||||
break;
|
||||
|
||||
case 'playlistowner':
|
||||
if (exploded[1] == 'user' && exploded[3] == 'playlist') {
|
||||
return exploded[2];
|
||||
}
|
||||
break;
|
||||
|
||||
case 'trackid':
|
||||
if (exploded[1] == 'track') {
|
||||
return exploded[2];
|
||||
}
|
||||
break;
|
||||
|
||||
case 'userid':
|
||||
if (exploded[1] == 'user') {
|
||||
return exploded[2];
|
||||
}
|
||||
break;
|
||||
|
||||
case 'genreid':
|
||||
if (exploded[1] == 'genre') {
|
||||
return exploded[2];
|
||||
}
|
||||
break;
|
||||
|
||||
case 'seeds':
|
||||
if (exploded[1] == 'discover') {
|
||||
return exploded[2];
|
||||
}
|
||||
break;
|
||||
|
||||
case 'searchtype':
|
||||
if (exploded[0] == 'search') {
|
||||
return exploded[1];
|
||||
}
|
||||
break;
|
||||
|
||||
case 'searchterm':
|
||||
if (exploded[0] == 'search') {
|
||||
case 'artistid':
|
||||
if (exploded[1] == 'artist') {
|
||||
return exploded[2];
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
case 'albumid':
|
||||
if (exploded[1] == 'album') {
|
||||
return exploded[2];
|
||||
}
|
||||
break;
|
||||
|
||||
case 'playlistid':
|
||||
if (exploded[1] == 'playlist') {
|
||||
return exploded[2];
|
||||
} if (exploded[1] == 'user' && exploded[3] == 'playlist') {
|
||||
return exploded[4];
|
||||
}
|
||||
break;
|
||||
|
||||
case 'playlistowner':
|
||||
if (exploded[1] == 'user' && exploded[3] == 'playlist') {
|
||||
return exploded[2];
|
||||
}
|
||||
break;
|
||||
|
||||
case 'trackid':
|
||||
if (exploded[1] == 'track') {
|
||||
return exploded[2];
|
||||
}
|
||||
break;
|
||||
|
||||
case 'userid':
|
||||
if (exploded[1] == 'user') {
|
||||
return exploded[2];
|
||||
}
|
||||
break;
|
||||
|
||||
case 'genreid':
|
||||
if (exploded[1] == 'genre') {
|
||||
return exploded[2];
|
||||
}
|
||||
break;
|
||||
|
||||
case 'seeds':
|
||||
if (exploded[1] == 'discover') {
|
||||
return exploded[2];
|
||||
} else if (exploded[1] === 'radio') {
|
||||
const seeds = exploded[2].split(',');
|
||||
return seeds.map(seed => seed.replace(/_/gi,':'));
|
||||
}
|
||||
break;
|
||||
|
||||
case 'searchtype':
|
||||
if (exploded[0] == 'search') {
|
||||
return exploded[1];
|
||||
}
|
||||
break;
|
||||
|
||||
case 'searchterm':
|
||||
if (exploded[0] == 'search') {
|
||||
return exploded[2];
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
return null;
|
||||
};
|
||||
|
||||
|
||||
|
||||
@ -11,7 +11,7 @@ const geniusActions = require('../genius/actions');
|
||||
const spotifyActions = require('../spotify/actions');
|
||||
const snapcastActions = require('../snapcast/actions');
|
||||
|
||||
const PusherMiddleware = (function () {
|
||||
const PusherMiddleware = (function () {
|
||||
// container for the actual websocket
|
||||
let socket = null;
|
||||
|
||||
@ -19,7 +19,7 @@ const PusherMiddleware = (function () {
|
||||
const deferredRequests = [];
|
||||
|
||||
// handle all manner of socket messages
|
||||
const handleMessage = (ws, store, message) => {
|
||||
const handleMessage = (ws, store, message) => {
|
||||
if (store.getState().ui.log_pusher) {
|
||||
console.log('Pusher log (incoming)', message);
|
||||
}
|
||||
@ -35,9 +35,9 @@ const PusherMiddleware = (function () {
|
||||
}
|
||||
|
||||
// Response with request_id
|
||||
if (id) {
|
||||
if (id) {
|
||||
// Response matches a pending request
|
||||
if (deferredRequests[id] !== undefined) {
|
||||
if (deferredRequests[id] !== undefined) {
|
||||
store.dispatch(uiActions.stopLoading(id));
|
||||
|
||||
// Response is an error
|
||||
@ -58,15 +58,15 @@ const PusherMiddleware = (function () {
|
||||
}
|
||||
|
||||
// General broadcast received
|
||||
} else {
|
||||
} else {
|
||||
// Broadcast of an error
|
||||
if (message.error !== undefined) {
|
||||
store.dispatch(coreActions.handleException(
|
||||
`Pusher: ${message.error.message}`,
|
||||
message,
|
||||
(message.error.data !== undefined && message.error.data.description !== undefined ? message.error.data.description : null),
|
||||
));
|
||||
} else {
|
||||
));
|
||||
} else {
|
||||
switch (message.method) {
|
||||
case 'connection_added':
|
||||
store.dispatch(pusherActions.connectionAdded(message.params.connection));
|
||||
@ -115,8 +115,8 @@ const PusherMiddleware = (function () {
|
||||
break;
|
||||
case 'local_scan_finished':
|
||||
store.dispatch(uiActions.processFinished('local_scan'));
|
||||
store.dispatch(uiActions.createNotification({
|
||||
key: 'local_scan', type: 'info', content: 'Local scan finished', description: message.params.output,
|
||||
store.dispatch(uiActions.createNotification({
|
||||
key: 'local_scan', type: 'info', content: 'Local scan finished', description: message.params.output,
|
||||
}));
|
||||
break;
|
||||
case 'local_scan_error':
|
||||
@ -168,7 +168,7 @@ const PusherMiddleware = (function () {
|
||||
}
|
||||
};
|
||||
|
||||
const request = (store, method, params = null) => new Promise((resolve, reject) => {
|
||||
const request = (store, method, params = null) => new Promise((resolve, reject) => {
|
||||
const id = helpers.generateGuid();
|
||||
const message = {
|
||||
jsonrpc: '2.0',
|
||||
@ -210,7 +210,7 @@ const PusherMiddleware = (function () {
|
||||
return (store) => (next) => (action) => {
|
||||
const { pusher } = store.getState();
|
||||
|
||||
switch (action.type) {
|
||||
switch (action.type) {
|
||||
case 'PUSHER_CONNECT':
|
||||
if (socket != null) {
|
||||
socket.close();
|
||||
@ -542,6 +542,10 @@ const PusherMiddleware = (function () {
|
||||
type: 'PUSHER_RADIO_LOADED',
|
||||
radio: response.radio,
|
||||
});
|
||||
|
||||
if (response.radio.enabled) {
|
||||
store.dispatch(spotifyActions.resolveRadioSeeds(response.radio));
|
||||
}
|
||||
},
|
||||
(error) => {
|
||||
store.dispatch(coreActions.handleException(
|
||||
@ -555,8 +559,8 @@ const PusherMiddleware = (function () {
|
||||
case 'PUSHER_START_RADIO':
|
||||
case 'PUSHER_UPDATE_RADIO':
|
||||
if (store.getState().ui.allow_reporting) {
|
||||
ReactGA.event({ category: 'Pusher', action: 'Start radio', label: action.uris.join() });
|
||||
}
|
||||
ReactGA.event({ category: 'Pusher', action: 'Start radio', label: action.uris.join() });
|
||||
}
|
||||
|
||||
// start our UI process notification
|
||||
if (action.type == 'PUSHER_UPDATE_RADIO') {
|
||||
@ -776,7 +780,7 @@ const PusherMiddleware = (function () {
|
||||
default:
|
||||
return next(action);
|
||||
}
|
||||
};
|
||||
};
|
||||
}());
|
||||
|
||||
export default PusherMiddleware;
|
||||
|
||||
@ -64,6 +64,8 @@ class Queue extends React.Component {
|
||||
case 'playlist':
|
||||
coreActions.loadPlaylist(next_added_from_uri);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -129,28 +131,12 @@ class Queue extends React.Component {
|
||||
}
|
||||
|
||||
renderArtwork(image) {
|
||||
const {
|
||||
radio_enabled,
|
||||
current_track,
|
||||
} = this.props;
|
||||
const { current_track } = this.props;
|
||||
|
||||
if (!image) {
|
||||
return (
|
||||
<div
|
||||
className={`current-track__artwork ${
|
||||
radio_enabled
|
||||
? 'current-track__artwork--radio-enabled'
|
||||
: ''
|
||||
}`}
|
||||
>
|
||||
{radio_enabled ? (
|
||||
<img
|
||||
className="radio-overlay"
|
||||
src="/iris/assets/radio-overlay.png"
|
||||
alt=""
|
||||
/>
|
||||
) : null}
|
||||
<Thumbnail glow circle={radio_enabled} />
|
||||
<div className="current-track__artwork">
|
||||
<Thumbnail glow />
|
||||
</div>
|
||||
);
|
||||
}
|
||||
@ -160,22 +146,9 @@ class Queue extends React.Component {
|
||||
uri = current_track.album.uri;
|
||||
}
|
||||
return (
|
||||
<div
|
||||
className={`current-track__artwork ${
|
||||
radio_enabled
|
||||
? 'current-track__artwork--radio-enabled'
|
||||
: ''
|
||||
}`}
|
||||
>
|
||||
<div className="current-track__artwork">
|
||||
<URILink type="album" uri={uri}>
|
||||
{radio_enabled ? (
|
||||
<img
|
||||
className="radio-overlay"
|
||||
src="/iris/assets/radio-overlay.png"
|
||||
alt=""
|
||||
/>
|
||||
) : null}
|
||||
<Thumbnail glow image={image} circle={radio_enabled} />
|
||||
<Thumbnail glow image={image} />
|
||||
</URILink>
|
||||
</div>
|
||||
);
|
||||
@ -185,11 +158,24 @@ class Queue extends React.Component {
|
||||
const { added_from_uri } = this.props;
|
||||
if (!added_from_uri) return null;
|
||||
|
||||
const item_type = helpers.uriType(added_from_uri);
|
||||
const uri_type = helpers.uriType(added_from_uri);
|
||||
let item_uri = added_from_uri;
|
||||
let item_type = uri_type;
|
||||
|
||||
// Radio nests it's seed URIs in an encoded URI format
|
||||
if (uri_type === 'radio') {
|
||||
const radio_seeds = helpers.getFromUri('seeds', added_from_uri);
|
||||
|
||||
// For now we only care about the first seed
|
||||
// TODO: Support for multiple seeds
|
||||
item_uri = radio_seeds[0];
|
||||
item_type = helpers.uriType(item_uri);
|
||||
}
|
||||
|
||||
const item_library = this.props[`${item_type}s`];
|
||||
if (!item_library) return null;
|
||||
|
||||
const item = item_library[added_from_uri];
|
||||
const item = item_library[item_uri];
|
||||
if (!item) return null;
|
||||
|
||||
return (
|
||||
@ -210,6 +196,7 @@ class Queue extends React.Component {
|
||||
<URILink type={item_type} uri={item.uri}>
|
||||
{item.name}
|
||||
</URILink>
|
||||
{uri_type === 'radio' && <span> radio</span>}
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
@ -372,6 +359,7 @@ const mapStateToProps = (state, ownProps) => {
|
||||
artists: state.core.artists,
|
||||
albums: state.core.albums,
|
||||
playlists: state.core.playlists,
|
||||
tracks: state.core.tracks,
|
||||
queue_tracks,
|
||||
current_track_uri: state.core.current_track_uri,
|
||||
current_track,
|
||||
|
||||
@ -15,7 +15,7 @@ import * as spotifyActions from '../../services/spotify/actions';
|
||||
import * as pusherActions from '../../services/pusher/actions';
|
||||
import * as helpers from '../../helpers';
|
||||
|
||||
class EditRadio extends React.Component {
|
||||
class EditRadio extends React.Component {
|
||||
constructor(props) {
|
||||
super(props);
|
||||
this.state = {
|
||||
@ -43,7 +43,6 @@ class EditRadio extends React.Component {
|
||||
loadRadio(radio) {
|
||||
const seeds = [...radio.seed_tracks, ...radio.seed_artists, ...radio.seed_genres];
|
||||
this.setState({ seeds, enabled: radio.enabled });
|
||||
this.props.spotifyActions.resolveRadioSeeds(radio);
|
||||
}
|
||||
|
||||
handleStart(e) {
|
||||
@ -193,15 +192,15 @@ class EditRadio extends React.Component {
|
||||
seeds.map((seed, index) => (
|
||||
<div className="list__item" key={seed.uri}>
|
||||
{seed.unresolved ? <span className="mid_grey-text">{seed.uri}</span> : <span>{seed.name}</span> }
|
||||
{!seed.unresolved ? (
|
||||
<span className="mid_grey-text">
|
||||
(
|
||||
{helpers.uriType(seed.uri)}
|
||||
)
|
||||
</span>
|
||||
{!seed.unresolved ? (
|
||||
<span className="mid_grey-text">
|
||||
(
|
||||
{helpers.uriType(seed.uri)}
|
||||
)
|
||||
</span>
|
||||
) : null}
|
||||
<span className="button discrete remove-uri no-hover" onClick={(e) => this.removeSeed(seed.uri)}>
|
||||
<Icon name="delete" />
|
||||
<Icon name="delete" />
|
||||
Remove
|
||||
</span>
|
||||
</div>
|
||||
@ -213,7 +212,7 @@ Remove
|
||||
}
|
||||
return (
|
||||
<div className="no-results">No seeds</div>
|
||||
);
|
||||
);
|
||||
}
|
||||
|
||||
render() {
|
||||
@ -232,10 +231,10 @@ Remove
|
||||
<input
|
||||
type="text"
|
||||
onChange={(e) => this.setState({ uri: e.target.value, error_message: null })}
|
||||
value={this.state.uri}
|
||||
value={this.state.uri}
|
||||
/>
|
||||
<span className="button discrete add-uri no-hover" onClick={(e) => this.addSeed(e)}>
|
||||
<Icon name="add" />
|
||||
<Icon name="add" />
|
||||
Add
|
||||
</span>
|
||||
{this.state.error_message ? <span className="description error">{this.state.error_message}</span> : null}
|
||||
@ -268,4 +267,4 @@ const mapDispatchToProps = (dispatch) => ({
|
||||
spotifyActions: bindActionCreators(spotifyActions, dispatch),
|
||||
});
|
||||
|
||||
export default connect(mapStateToProps, mapDispatchToProps)(EditRadio);
|
||||
export default connect(mapStateToProps, mapDispatchToProps)(EditRadio);
|
||||
|
||||
Reference in New Issue
Block a user