<template>
  <div ref="wrapper" class="w-full p-2 border border-white border-opacity-10 rounded">
    <div class="flex">
      <div class="w-16 min-w-16">
        <div class="w-full h-16 bg-primary">
          <img v-if="image" :src="image" class="w-full h-full object-cover" />
        </div>
        <p class="text-gray-400 text-xxs pt-1 text-center">{{ numEpisodes }} {{ $strings.HeaderEpisodes }}</p>
      </div>
      <div class="flex-grow pl-2" :style="{ maxWidth: detailsWidth + 'px' }">
        <p class="mb-1">{{ title }}</p>
        <p class="text-xs mb-1 text-gray-300">{{ author }}</p>
        <p class="text-xs mb-2 text-gray-200">{{ description }}</p>
        <p class="text-xs truncate text-blue-200">
          {{ $strings.LabelFolder }}: <span class="font-mono">{{ folderPath }}</span>
        </p>
      </div>
    </div>
  </div>
</template>

<script>
export default {
  props: {
    feed: {
      type: Object,
      default: () => {}
    },
    libraryFolderPath: String
  },
  data() {
    return {
      width: 900
    }
  },
  computed: {
    title() {
      return this.metadata.title || 'No Title'
    },
    image() {
      return this.metadata.imageUrl
    },
    description() {
      return this.metadata.description || ''
    },
    author() {
      return this.metadata.author || ''
    },
    metadata() {
      return this.feed || {}
    },
    numEpisodes() {
      return this.feed.numEpisodes || 0
    },
    folderPath() {
      if (!this.libraryFolderPath) return ''
      return `${this.libraryFolderPath}/${this.$sanitizeFilename(this.title)}`
    },
    detailsWidth() {
      return this.width - 85
    }
  },
  methods: {},
  updated() {
    this.width = this.$refs.wrapper.clientWidth
  },
  mounted() {
    this.width = this.$refs.wrapper.clientWidth
  }
}
</script>
