UNPKG

@wordpress/block-library

Version:
68 lines (66 loc) 1.99 kB
"use strict"; // packages/block-library/src/playlist/view.js var import_interactivity = require("@wordpress/interactivity"); (0, import_interactivity.store)( "core/playlist", { state: { playlists: {}, get currentTrack() { const { currentId, playlistId } = (0, import_interactivity.getContext)(); if (!currentId || !playlistId) { return {}; } const playlist = this.playlists[playlistId]; if (!playlist) { return {}; } return playlist.tracks[currentId] || {}; }, get isCurrentTrack() { const { currentId, uniqueId } = (0, import_interactivity.getContext)(); return currentId === uniqueId; } }, actions: { changeTrack() { const context = (0, import_interactivity.getContext)(); context.currentId = context.uniqueId; context.isPlaying = true; }, isPlaying() { const context = (0, import_interactivity.getContext)(); context.isPlaying = true; }, isPaused() { const context = (0, import_interactivity.getContext)(); context.isPlaying = false; }, nextSong() { const context = (0, import_interactivity.getContext)(); const currentIndex = context.tracks.findIndex( (uniqueId) => uniqueId === context.currentId ); const nextTrack = context.tracks[currentIndex + 1]; if (nextTrack) { context.currentId = nextTrack; const { ref } = (0, import_interactivity.getElement)(); setTimeout(() => { ref.play(); }, 1e3); } } }, callbacks: { autoPlay() { const context = (0, import_interactivity.getContext)(); const { ref } = (0, import_interactivity.getElement)(); if (context.currentId && context.isPlaying) { ref.play(); } } } }, { lock: true } ); //# sourceMappingURL=view.cjs.map