<template>
  <div class="attachment-container asset"
       :data-asset-id="attachment.id"
  >
    <a  :href="attachment.attributes.urls.blob"
        class="file-preview-link file-name"
        :id="`modal_link${attachment.id}`"
        data-no-turbolink="true"
        :data-id="attachment.id"
        :data-gallery-view-id="stepId"
        :data-preview-url="attachment.attributes.urls.preview"
    >
      <div class="attachment-preview" :class= "attachment.attributes.asset_type">
        <img v-if="attachment.attributes.medium_preview !== null"
            :src="attachment.attributes.medium_preview"
            @error="ActiveStoragePreviews.reCheckPreview"
            @load="ActiveStoragePreviews.showPreview"
            style='opacity: 0' />
        <i  v-else class="fas" :class="attachment.attributes.icon"></i>
      </div>
      <div class="attachment-label"
           data-toggle="tooltip"
           data-placement="bottom"
           :title="`${ attachment.attributes.file_name }`">
        {{ attachment.attributes.file_name }}
        <span v-if="attachment.isNewUpload" class="attachment-label-new">
          {{ i18n.t('protocols.steps.attachments.new.description') }}
        </span>
      </div>
      <div class="attachment-metadata">
        {{ i18n.t('assets.placeholder.modified_label') }} {{ attachment.attributes.updated_at_formatted }}<br>
        {{ attachment.attributes.file_size_formatted }}
      </div>
    </a>
    <ContextMenu
      :attachment="attachment"
      @attachment:viewMode="updateViewMode"
      @attachment:delete="deleteAttachment"
    />
  </div>

</template>

<script>
  import ContextMenuMixin from './mixins/context_menu.js'
  import ContextMenu from './context_menu.vue'
  export default {
    name: 'thumbnailAttachment',
    mixins: [ContextMenuMixin],
    components: { ContextMenu },
    props: {
      attachment: {
        type: Object,
        required: true
      },
      stepId: {
        type: Number,
        required: true
      }
    }
  }
</script>