fix playlist reordering

+ fix mediasession handler
This commit is contained in:
Shiny Nematoda 2024-02-25 08:11:40 +00:00
parent 9094d21d2c
commit ab9ebbced0
4 changed files with 582 additions and 534 deletions

1077
package-lock.json generated

File diff suppressed because it is too large Load diff

View file

@ -11,17 +11,17 @@
},
"dependencies": {
"bootstrap-icons": "^1.11.3",
"dompurify": "^3.0.8",
"dompurify": "^3.0.9",
"peerjs": "^1.5.2",
"pinia": "^2.1.7",
"shaka-player": "^4.7.6",
"shaka-player": "^4.7.10",
"sortablejs": "^1.15.2",
"vue": "^3.2.38"
},
"devDependencies": {
"@vitejs/plugin-vue": "^4.6.2",
"prettier": "^3.2.4",
"vite": "^5.0.12",
"vite-plugin-pwa": "^0.17.4"
"@vitejs/plugin-vue": "^5.0.4",
"prettier": "^3.2.5",
"vite": "^5.1.4",
"vite-plugin-pwa": "^0.19.0"
}
}

View file

@ -185,21 +185,8 @@ onMounted(() => {
document.title = document.title.replace(titleState[0], titleState[1]);
});
navigator.mediaSession.setActionHandler('previoustrack', () => {
if (data.state.urls.length > 2) {
const i = data.state.urls.findIndex(s => s.url == data.state.url);
data.play(data.state.urls[i - 1]);
}
});
navigator.mediaSession.setActionHandler('nexttrack', () => {
if (data.state.urls.length > 2) {
const i = data.state.urls.findIndex(s => s.url == data.state.url);
data.play(data.state.urls[i + 1]);
}
});
navigator.mediaSession.setActionHandler('previoustrack', () => data.prevTrack());
navigator.mediaSession.setActionHandler('nexttrack', () => data.nextTrack());
navigator.mediaSession.setActionHandler('seekbackward', () => {
audio.value.currentTime -= 10;

View file

@ -24,12 +24,10 @@ onMounted(() => {
new Sortable(pl.value, {
handle: '.pl-handle',
animation: 150,
onEnd: e => {
data.state.urls.splice(
e.newIndex,
0,
data.state.urls.splice(e.oldIndex, 1)[0],
);
onUpdate: ({ oldIndex, newIndex }) => {
const { urls } = data.state;
urls.splice(newIndex-1, 0, urls.splice(oldIndex-1, 1)[0]);
data.state.urls = urls;
},
});
});