14nrv/buefy-shop

View on GitHub
components/CartProductListItem/CartProductListItem.vue

Summary

Maintainability
Test Coverage
A
100%
<template lang="pug">
  .box
    article.media
      .media-left
        picture.image.is-64x64
          source(:srcset="`products/${item.img}.webp`", type="image/webp")
          img(:src="`products/${item.img}.png`", :alt="`Image of ${item.name}`")
      .media-content
        .content
          p
            strong {{ item.name }}
            br
            span.itemCount {{ item.count }}
            |  x {{ item.price | usdollar }} = ${{ item.count * item.price }}
        nav.level.is-mobile
          .level-left
            a.level-item.removeItem(@click="removeItem(item)", title="Remove")
              span.icon.is-small
                i.fa.fa-trash-alt
            a.level-item
              span.icon.is-small
                i.fa.fa-retweet
            a.level-item
              span.icon.is-small
                i.fa.fa-heart
</template>

<script>
import { createNamespacedHelpers } from 'vuex'

const { mapActions } = createNamespacedHelpers('cart')

export default {
  name: 'CartProductListItem',
  filters: {
    usdollar: function(value) {
      return `$${value}`
    }
  },
  props: {
    item: {
      type: Object,
      required: true
    }
  },
  methods: {
    ...mapActions(['removeItem'])
  }
}
</script>