Debugging 'added_from' not loading on refresh; AddToPlaylist loader nested

This commit is contained in:
James Barnsley
2020-12-20 21:07:05 +13:00
parent 10e831821a
commit 37a06a304c
9 changed files with 135 additions and 122 deletions

View File

@ -101175,7 +101175,7 @@ var Dragger = /*#__PURE__*/function (_React$Component) {
dropzones[i].classList.remove('hover');
}
if (target.classList.contains('dropzone') && !target.classList.contains('hover')) {
if (target.classList && target.classList.contains('dropzone') && !target.classList.contains('hover')) {
target.className += ' hover';
} // if not already, activate
@ -106645,6 +106645,15 @@ var ListItem = /*#__PURE__*/function (_React$Component) {
});
}
if (key === 'listeners') {
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_locale__WEBPACK_IMPORTED_MODULE_9__["I18n"], {
path: "specs.listeners",
count: value.toLocaleString(),
"data-qa-node": "I18n",
"data-qa-file": "ListItem"
});
}
if (key === 'added_at') {
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_locale__WEBPACK_IMPORTED_MODULE_9__["I18n"], {
path: "specs.added_ago",
@ -133592,12 +133601,6 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
function _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
@ -134076,42 +134079,31 @@ var mapStateToProps = function mapStateToProps(state) {
var current_track = {};
if (queue && items) {
var _iterator = _createForOfIteratorHelper(queue),
_step;
try {
for (_iterator.s(); !(_step = _iterator.n()).done;) {
var queue_track = _step.value;
var track = _objectSpread(_objectSpread({}, queue_track), {}, {
playing: core_current_track && core_current_track.tlid == queue_track.tlid
}); // If we have the track in our index, merge it in.
// We prioritise queue track over index track as queue has unique data, like which track
// is playing and tlids.
queue.forEach(function (queueTrack) {
var track = _objectSpread(_objectSpread({}, queueTrack), {}, {
playing: core_current_track && core_current_track.tlid === queueTrack.tlid
}); // If we have the track in our index, merge it in.
// We prioritise queue track over index track as queue has unique data, like which track
// is playing and tlids.
if (items[track.uri]) {
track = _objectSpread(_objectSpread({}, items[track.uri]), track);
} // Now merge in our queue metadata
if (items[track.uri]) {
track = _objectSpread(_objectSpread({}, items[track.uri]), track);
} // Now merge in our queue metadata
if (queue_metadata["tlid_".concat(track.tlid)] !== undefined) {
track = _objectSpread(_objectSpread({}, track), queue_metadata["tlid_".concat(track.tlid)]);
} // Siphon off this track if it's a full representation of our current track
if (queue_metadata["tlid_".concat(track.tlid)] !== undefined) {
track = _objectSpread(_objectSpread({}, track), queue_metadata["tlid_".concat(track.tlid)]);
} // Siphon off this track if it's a full representation of our current track
if (track.playing) {
current_track = track;
} // Now add our compiled track for our tracklist
if (track.playing) {
current_track = track;
} // Now add our compiled track for our tracklist
queue_tracks.push(track);
}
} catch (err) {
_iterator.e(err);
} finally {
_iterator.f();
}
queue_tracks.push(track);
});
}
return {
@ -139194,7 +139186,7 @@ var LibraryArtists = /*#__PURE__*/function (_React$Component) {
},
rows: artists,
thumbnail: true,
details: ['followers', 'popularity'],
details: ['followers', 'listeners'],
right_column: ['source', 'albums'],
className: "artists",
link_prefix: "/artist/",
@ -141213,9 +141205,8 @@ var AddToPlaylist = /*#__PURE__*/function (_React$Component) {
window.history.back();
});
_defineProperty(_assertThisInitialized(_this), "render", function () {
_defineProperty(_assertThisInitialized(_this), "renderList", function () {
var _this$props3 = _this.props,
uris = _this$props3.uris,
items = _this$props3.items,
_this$props3$spotify_ = _this$props3.spotify_library,
spotify_library = _this$props3$spotify_ === void 0 ? {
@ -141245,6 +141236,64 @@ var AddToPlaylist = /*#__PURE__*/function (_React$Component) {
return playlist.can_edit;
});
playlists = Object(_util_arrays__WEBPACK_IMPORTED_MODULE_12__["sortItems"])(playlists, 'name');
if (playlists.length > 0) {
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {
className: "list small playlists",
"data-qa-node": "div",
"data-qa-file": "AddToPlaylist"
}, playlists.map(function (playlist) {
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {
className: "list__item",
key: playlist.uri,
onClick: function onClick() {
return _this.playlistSelected(playlist.uri);
},
"data-qa-node": "div",
"data-qa-file": "AddToPlaylist"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_components_Thumbnail__WEBPACK_IMPORTED_MODULE_6__["default"], {
images: playlist.images,
size: "small",
"data-qa-node": "Thumbnail",
"data-qa-file": "AddToPlaylist"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("h4", {
className: "list__item__name",
"data-qa-node": "h4",
"data-qa-file": "AddToPlaylist"
}, playlist.name), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("ul", {
className: "list__item__details details",
"data-qa-node": "ul",
"data-qa-file": "AddToPlaylist"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("li", {
"data-qa-node": "li",
"data-qa-file": "AddToPlaylist"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_components_Icon__WEBPACK_IMPORTED_MODULE_5__["default"], {
type: "fontawesome",
className: "source",
name: Object(_util_helpers__WEBPACK_IMPORTED_MODULE_11__["sourceIcon"])(playlist.uri),
"data-qa-node": "Icon",
"data-qa-file": "AddToPlaylist"
})), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("li", {
className: "mid_grey-text",
"data-qa-node": "li",
"data-qa-file": "AddToPlaylist"
}, "".concat(playlist.tracks_total || 0, " tracks"))));
}));
}
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {
className: "no-results",
"data-qa-node": "div",
"data-qa-file": "AddToPlaylist"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_locale__WEBPACK_IMPORTED_MODULE_13__["I18n"], {
path: "modal.add_to_playlist.no_playlists",
"data-qa-node": "I18n",
"data-qa-file": "AddToPlaylist"
}));
});
_defineProperty(_assertThisInitialized(_this), "render", function () {
var uris = _this.props.uris;
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_Modal__WEBPACK_IMPORTED_MODULE_4__["default"], {
className: "modal--add-to-playlist",
"data-qa-node": "Modal",
@ -141266,55 +141315,7 @@ var AddToPlaylist = /*#__PURE__*/function (_React$Component) {
plural: uris.length > 1 ? 's' : '',
"data-qa-node": "I18n",
"data-qa-file": "AddToPlaylist"
})), playlists.length ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {
className: "list small playlists",
"data-qa-node": "div",
"data-qa-file": "AddToPlaylist"
}, playlists.map(function (playlist) {
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {
className: "list__item",
key: playlist.uri,
onClick: function onClick() {
return _this.playlistSelected(playlist.uri);
},
"data-qa-node": "div",
"data-qa-file": "AddToPlaylist"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_components_Thumbnail__WEBPACK_IMPORTED_MODULE_6__["default"], {
images: playlist.images,
size: "small",
"data-qa-node": "Thumbnail",
"data-qa-file": "AddToPlaylist"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("h4", {
className: "list__item__name",
"data-qa-node": "h4",
"data-qa-file": "AddToPlaylist"
}, playlist.name), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("ul", {
className: "list__item__details details",
"data-qa-node": "ul",
"data-qa-file": "AddToPlaylist"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("li", {
"data-qa-node": "li",
"data-qa-file": "AddToPlaylist"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_components_Icon__WEBPACK_IMPORTED_MODULE_5__["default"], {
type: "fontawesome",
className: "source",
name: Object(_util_helpers__WEBPACK_IMPORTED_MODULE_11__["sourceIcon"])(playlist.uri),
"data-qa-node": "Icon",
"data-qa-file": "AddToPlaylist"
})), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("li", {
className: "mid_grey-text",
"data-qa-node": "li",
"data-qa-file": "AddToPlaylist"
}, "".concat(playlist.tracks_total || 0, " tracks"))));
})) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {
className: "no-results",
"data-qa-node": "div",
"data-qa-file": "AddToPlaylist"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_locale__WEBPACK_IMPORTED_MODULE_13__["I18n"], {
path: "modal.add_to_playlist.no_playlists",
"data-qa-node": "I18n",
"data-qa-file": "AddToPlaylist"
})));
})), _this.renderList());
});
return _this;

File diff suppressed because one or more lines are too long

View File

@ -106,7 +106,7 @@
// Release details
// These are automatically injected to built HTML
var build = "1608365705";
var build = "1608449869";
var version = "3.55.5";
// Construct the script tag

View File

@ -52,7 +52,7 @@ class Dragger extends React.Component {
dropzones[i].classList.remove('hover');
}
if (target.classList.contains('dropzone') && !target.classList.contains('hover')) {
if (target.classList && target.classList.contains('dropzone') && !target.classList.contains('hover')) {
target.className += ' hover';
}

View File

@ -128,6 +128,9 @@ export default class ListItem extends React.Component {
if (key === 'followers') {
return <I18n path="specs.followers" count={value.toLocaleString()} />;
}
if (key === 'listeners') {
return <I18n path="specs.listeners" count={value.toLocaleString()} />;
}
if (key === 'added_at') {
return <I18n path="specs.added_ago" time={dater('ago', value)} />;
}

View File

@ -348,10 +348,10 @@ const mapStateToProps = (state) => {
let current_track = {};
if (queue && items) {
for (const queue_track of queue) {
queue.forEach((queueTrack) => {
let track = {
...queue_track,
playing: core_current_track && core_current_track.tlid == queue_track.tlid,
...queueTrack,
playing: core_current_track && core_current_track.tlid === queueTrack.tlid,
};
// If we have the track in our index, merge it in.
@ -379,7 +379,7 @@ const mapStateToProps = (state) => {
// Now add our compiled track for our tracklist
queue_tracks.push(track);
}
});
}
return {

View File

@ -196,7 +196,7 @@ class LibraryArtists extends React.Component {
handleContextMenu={(e, item) => this.handleContextMenu(e, item)}
rows={artists}
thumbnail
details={['followers', 'popularity']}
details={['followers', 'listeners']}
right_column={['source', 'albums']}
className="artists"
link_prefix="/artist/"

View File

@ -62,9 +62,8 @@ class AddToPlaylist extends React.Component {
window.history.back();
}
render = () => {
renderList = () => {
const {
uris,
items,
spotify_library = { items_uris: [] },
mopidy_library = { items_uris: [] },
@ -82,6 +81,39 @@ class AddToPlaylist extends React.Component {
playlists = sortItems(playlists, 'name');
if (playlists.length > 0 ){
return (
<div className="list small playlists">
{playlists.map((playlist) => (
<div
className="list__item"
key={playlist.uri}
onClick={() => this.playlistSelected(playlist.uri)}
>
<Thumbnail images={playlist.images} size="small" />
<h4 className="list__item__name">{ playlist.name }</h4>
<ul className="list__item__details details">
<li><Icon type="fontawesome" className="source" name={sourceIcon(playlist.uri)} /></li>
<li className="mid_grey-text">
{`${playlist.tracks_total || 0} tracks`}
</li>
</ul>
</div>
))}
</div>
);
}
return (
<div className="no-results">
<I18n path="modal.add_to_playlist.no_playlists" />
</div>
);
}
render = () => {
const { uris } = this.props;
return (
<Modal className="modal--add-to-playlist">
<h1><I18n path="modal.add_to_playlist.title" /></h1>
@ -92,30 +124,7 @@ class AddToPlaylist extends React.Component {
plural={uris.length > 1 ? 's' : ''}
/>
</h2>
{playlists.length ? (
<div className="list small playlists">
{playlists.map((playlist) => (
<div
className="list__item"
key={playlist.uri}
onClick={() => this.playlistSelected(playlist.uri)}
>
<Thumbnail images={playlist.images} size="small" />
<h4 className="list__item__name">{ playlist.name }</h4>
<ul className="list__item__details details">
<li><Icon type="fontawesome" className="source" name={sourceIcon(playlist.uri)} /></li>
<li className="mid_grey-text">
{`${playlist.tracks_total || 0} tracks`}
</li>
</ul>
</div>
))}
</div>
) : (
<div className="no-results">
<I18n path="modal.add_to_playlist.no_playlists" />
</div>
)}
{this.renderList()}
</Modal>
);
}

View File

@ -1,5 +1,5 @@
{
"manifest_version": "3.54",
"manifest_version": "3.55",
"short_name": "Iris",
"name": "Iris",
"icons": [