Update "Open Link" button to include playlist ID (#1258)
* ! Fix app unable to load due to missing `getLocale` in `mapActions` * $ Update a function's name with incorrect name casing * Update "open youtube link" button to open with playlist when playing a video with an active playlist
This commit is contained in:
		
							parent
							
								
									81d9484111
								
							
						
					
					
						commit
						70aa159bb8
					
				| 
						 | 
				
			
			@ -399,7 +399,8 @@ export default Vue.extend({
 | 
			
		|||
      'grabHistory',
 | 
			
		||||
      'grabAllPlaylists',
 | 
			
		||||
      'getRegionData',
 | 
			
		||||
      'getYoutubeUrlInfo'
 | 
			
		||||
      'getYoutubeUrlInfo',
 | 
			
		||||
      'getLocale'
 | 
			
		||||
    ]),
 | 
			
		||||
 | 
			
		||||
    ...mapMutations([
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -19,6 +19,10 @@ export default Vue.extend({
 | 
			
		|||
      type: String,
 | 
			
		||||
      required: true
 | 
			
		||||
    },
 | 
			
		||||
    playlistId: {
 | 
			
		||||
      type: String,
 | 
			
		||||
      required: true
 | 
			
		||||
    },
 | 
			
		||||
    getTimestamp: {
 | 
			
		||||
      type: Function,
 | 
			
		||||
      required: true
 | 
			
		||||
| 
						 | 
				
			
			@ -35,7 +39,13 @@ export default Vue.extend({
 | 
			
		|||
    },
 | 
			
		||||
 | 
			
		||||
    invidiousURL() {
 | 
			
		||||
      return `${this.invidiousInstance}/watch?v=${this.id}`
 | 
			
		||||
      let videoUrl = `${this.invidiousInstance}/watch?v=${this.id}`
 | 
			
		||||
      // `playlistId` can be undefined
 | 
			
		||||
      if (this.playlistId && this.playlistId.length !== 0) {
 | 
			
		||||
        // `index` seems can be ignored
 | 
			
		||||
        videoUrl += `&list=${this.playlistId}`
 | 
			
		||||
      }
 | 
			
		||||
      return videoUrl
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    invidiousEmbedURL() {
 | 
			
		||||
| 
						 | 
				
			
			@ -43,10 +53,21 @@ export default Vue.extend({
 | 
			
		|||
    },
 | 
			
		||||
 | 
			
		||||
    youtubeURL() {
 | 
			
		||||
      return `https://www.youtube.com/watch?v=${this.id}`
 | 
			
		||||
      let videoUrl = `https://www.youtube.com/watch?v=${this.id}`
 | 
			
		||||
      // `playlistId` can be undefined
 | 
			
		||||
      if (this.playlistId && this.playlistId.length !== 0) {
 | 
			
		||||
        // `index` seems can be ignored
 | 
			
		||||
        videoUrl += `&list=${this.playlistId}`
 | 
			
		||||
      }
 | 
			
		||||
      return videoUrl
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    youtubeShareURL() {
 | 
			
		||||
      // `playlistId` can be undefined
 | 
			
		||||
      if (this.playlistId && this.playlistId.length !== 0) {
 | 
			
		||||
        // `index` seems can be ignored
 | 
			
		||||
        return `https://www.youtube.com/watch?v=${this.id}&list=${this.playlistId}`
 | 
			
		||||
      }
 | 
			
		||||
      return `https://youtu.be/${this.id}`
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -111,7 +132,7 @@ export default Vue.extend({
 | 
			
		|||
      this.$refs.iconButton.focusOut()
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    updateincludeTimestamp() {
 | 
			
		||||
    updateIncludeTimestamp() {
 | 
			
		||||
      this.includeTimestamp = !this.includeTimestamp
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -12,7 +12,7 @@
 | 
			
		|||
        :label="$t('Share.Include Timestamp')"
 | 
			
		||||
        :compact="true"
 | 
			
		||||
        :default-value="includeTimestamp"
 | 
			
		||||
        @change="updateincludeTimestamp"
 | 
			
		||||
        @change="updateIncludeTimestamp"
 | 
			
		||||
      />
 | 
			
		||||
    </ft-flex-box>
 | 
			
		||||
    <div class="shareLinks">
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -82,6 +82,10 @@ export default Vue.extend({
 | 
			
		|||
      type: Boolean,
 | 
			
		||||
      required: true
 | 
			
		||||
    },
 | 
			
		||||
    playlistId: {
 | 
			
		||||
      type: String,
 | 
			
		||||
      required: true
 | 
			
		||||
    },
 | 
			
		||||
    theatrePossible: {
 | 
			
		||||
      type: Boolean,
 | 
			
		||||
      required: true
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -101,6 +101,7 @@
 | 
			
		|||
        <ft-share-button
 | 
			
		||||
          :id="id"
 | 
			
		||||
          :get-timestamp="getTimestamp"
 | 
			
		||||
          :playlist-id="playlistId"
 | 
			
		||||
          class="option"
 | 
			
		||||
        />
 | 
			
		||||
      </div>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -83,6 +83,7 @@
 | 
			
		|||
        :is-upcoming="isUpcoming"
 | 
			
		||||
        :download-links="downloadLinks"
 | 
			
		||||
        :watching-playlist="watchingPlaylist"
 | 
			
		||||
        :playlist-id="playlistId"
 | 
			
		||||
        :theatre-possible="theatrePossible"
 | 
			
		||||
        :length-seconds="videoLengthSeconds"
 | 
			
		||||
        :video-thumbnail="thumbnail"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue