Переглянути джерело

[web] Play/Enqueue buttons on album page

Innokentiy Enikeev 4 роки тому
батько
коміт
bceadba089
2 змінених файлів з 9 додано та 2 видалено
  1. 8 1
      web/src/AlbumPage.js
  2. 1 1
      web/src/Player.js

+ 8 - 1
web/src/AlbumPage.js

@@ -44,7 +44,14 @@ export default function AlbumPage({dispatch, scrollRef}) {
           {artistName}
         </Link>
       </h1>
-      <h2>{albumName}</h2>
+      <h2>{albumName}</h2>{tracks && (<div className="Album-actions">
+          <button onClick={(e)=>dispatch({type:'ALBUM_PLAY', payload: {tracks, pos: 0}})}>
+            <svg viewBox="0 0 24 24"><g><path d="M8 5v14l11-7z"/></g></svg>
+          </button>
+          <button onClick={(e)=>dispatch({type: 'ALBUM_ENQUEUE', payload: {tracks}})}>
+            <svg viewBox="0 0 24 24"><g><path d="M10 6h4v4h4v4h-4v4h-4v-4h-4v-4h4z"/></g></svg>
+          </button>
+      </div>)}
       {album && (<>
         {album.date && <h3>Date: {album.year}</h3>}
         {album.country && <h3>Country: {album.country}</h3>}

+ 1 - 1
web/src/Player.js

@@ -50,7 +50,7 @@ function playerReducer(state, action) {
     return playQueue({...state, queue}, (action.payload.pos || 0))}
   case 'ALBUM_ENQUEUE': {
     if (!action.payload) return state;
-    const queue = {...state.queue, items: state.queue.items.concat(action.payload)};
+    const queue = {...state.queue, items: state.queue.items.concat(action.payload.tracks)};
     return {...state, queue}}
   case 'CONTROL_PLAY':
     return {...state, sound: {...state.sound, playStatus: Sound.status.PLAYING}}