<template>
  <div class="item-view">
    <div class="item-content">
      <div class="item-name">{{ item.name.capital.all.toString() }}</div>
    </div>
    <i :class="'item-icon ' + $data.ItemKindIcons[item.kind]" />
    <div class="item-hover">
      <div class="item-hover-text">{{ hoverText }}</div>
    </div>
  </div>
</template>

<script lang="ts">
import { Component, Prop, Vue, Watch, Emit } from 'vue-property-decorator'
import { Item, ItemKindIcons, ItemKind } from '@/game/items'

@Component({
  data () {
    return {
      ItemKindIcons: ItemKindIcons
    }
  }
})
export default class ItemView extends Vue {
  get hoverText () {
    switch (this.item.kind) {
      case ItemKind.Key: return "Inspect"
      case ItemKind.Consumable: return "Use"
      case ItemKind.Equipment: return "Equip"
    }
  }

  @Prop({ required: true })
  item!: Item
}

</script>

<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
  .item-view {
    position: relative;
    border: 4px outset;
    border-radius: 4px;
    margin: 4px;
  }

  .item-content {
    position: relative;
    padding: 4px;
    z-index: 1;
  }

  .item-name {
    font-size: 1.5rem;
  }

  .item-icon {
    color: #666;
    font-size: 250%;
    position: absolute;
    top: 65%;
    left: 50%;
    transform: translate(-50%, -50%);
  }

  .item-hover {
    display: none;
    --item-hover-text: "oops";
  }

  .item-view:hover .item-hover {
    position: absolute;
    display: grid;
    place-items: center;
    top: 0;
    left: 0;
    background: #ffffff;
    color: black;
    opacity: 0.5;
    width: 100%;
    height: 100%;
    z-index: 2;
    user-select: none;
  }
</style>
