Skip to content

Commit

Permalink
refresh playlist method, code cleanup
Browse files Browse the repository at this point in the history
  • Loading branch information
hinanaya committed May 16, 2024
1 parent 4cd5ad3 commit e817377
Showing 1 changed file with 44 additions and 30 deletions.
74 changes: 44 additions & 30 deletions ui/elements/preview.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,15 @@ class OBElementPreview extends OBElement {
#itemId;
#itemType;
#queue;
#imageTimeout;
#imageTimeout;

#imageWidth;
#imageHeight;

#videojsPlayer;

#currentPlaylist;

connectedCallback() {
if (this.#init) {
return;
Expand Down Expand Up @@ -267,37 +269,10 @@ class OBElementPreview extends OBElement {
this.#queue = [];
this.#itemId = null;
this.#itemType = null;
this.#currentPlaylist = null;

if (window.dragHelperData[0].classList.contains("sidebar_search_playlist_result")) {
let data = {
"id": window.dragHelperData[0].dataset.id
};
let elem = this;
OB.API.post("playlists", "resolve", data, function (response) {
if (response.data) {
response.data.forEach((item) => {
let queueItem = {
"id": item.id,
"type": item.media_type,
"title": item.title,
"artist": item.artist,
};

if (item.media_type === 'image') {
queueItem.duration = item.duration;
}

elem.#queue.push(queueItem);
});

if (elem.#queue.length > 0) {
elem.#itemId = 0;
elem.#itemType = elem.#queue[0].type;
}

elem.renderComponent();
}
});
this.#resolvePlaylist(window.dragHelperData[0].dataset.id);
} else if (window.dragHelperData[0].classList.contains("sidebar_search_media_result")) {
Object.values(window.dragHelperData).forEach((item) => {
if (! item.dataset) {
Expand Down Expand Up @@ -381,6 +356,45 @@ class OBElementPreview extends OBElement {
this.#itemId = index;
this.renderComponent();
}

playlistRefresh() {
if (! this.#currentPlaylist) {
return;
}

this.#resolvePlaylist(this.#currentPlaylist);
}

#resolvePlaylist(id) {
let elem = this;

OB.API.post("playlists", "resolve", {"id": id}, function (response) {
if (response.data) {
response.data.forEach((item) => {
let queueItem = {
"id": item.id,
"type": item.media_type,
"title": item.title,
"artist": item.artist,
};

if (item.media_type === 'image') {
queueItem.duration = item.duration;
}

elem.#queue.push(queueItem);
});

if (elem.#queue.length > 0) {
elem.#itemId = 0;
elem.#itemType = elem.#queue[0].type;
}

elem.#currentPlaylist = id;
elem.renderComponent();
}
});
}
}

customElements.define('ob-element-preview', OBElementPreview);

0 comments on commit e817377

Please sign in to comment.