<!--
    Copyright © 2021 Adrien Agez <adrien.agez@pm.me>

    This file is part of Nexus Timers.

    Nexus Timers is free software: you can redistribute it and/or modify
    it under the terms of the GNU Affero General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    Nexus Timers is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU Affero General Public License for more details.

    You should have received a copy of the GNU Affero General Public License
    along with Nexus Timers.  If not, see <https://www.gnu.org/licenses/>.
-->

<template>

  <div
    class="objective"
    @click="clearObjective"
    v-longclick="forceClearObjective">
    <div>
      {{ objective.name }}
      <span v-if="objective.position"> ({{ objective.position }})</span>
    </div>

    <div>
      <Timer
        ref="timer"
        class="objective-timer"
        :initialTime="objective.initialSpawnTime"
        />
    </div>
  </div>
</template>

<style lang="sass" scoped>
  .objective
    width: 100%
    text-align: center

    &-timer
      font-size: 2rem
</style>

<script>
  import Timer from '@/components/Timer'
  export default {
    name: 'Objective',
    props: {
      objective: Object
    },
    data () {
      return {
      }
    },
    methods: {
      clearObjective: function () {
        if (this.$refs.timer.currentTime === 0) {
          this.resetTimer()
        }
      },
      forceClearObjective: function () {
        this.resetTimer()
      },
      resetTimer: function () {
        this.$refs.timer.setTime(this.objective.respawnTime)
        this.$refs.timer.startTimer()
      }
    },
    components: {
      Timer
    }
  }
</script>
