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

View file

@ -185,21 +185,8 @@ onMounted(() => {
document.title = document.title.replace(titleState[0], titleState[1]); document.title = document.title.replace(titleState[0], titleState[1]);
}); });
navigator.mediaSession.setActionHandler('previoustrack', () => { navigator.mediaSession.setActionHandler('previoustrack', () => data.prevTrack());
if (data.state.urls.length > 2) { navigator.mediaSession.setActionHandler('nexttrack', () => data.nextTrack());
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('seekbackward', () => { navigator.mediaSession.setActionHandler('seekbackward', () => {
audio.value.currentTime -= 10; audio.value.currentTime -= 10;

View file

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