<template>
  <div class="control__elements">
    <input
      ref="input"
      v-model="formattedValue"
      :placeholder="field.duration_format"
      type="text"
      class="input field-duration"
      :class="{
        'input--error': touched && !valid,
      }"
      :disabled="readOnly"
      @keypress="onKeyPress(field, $event)"
      @keyup.enter="$refs.input.blur()"
      @keyup="updateCopy(field, $event.target.value)"
      @focus="select()"
      @blur="unselect()"
    />
    <div v-show="touched && !valid" class="error">
      {{ error }}
    </div>
  </div>
</template>

<script>
import rowEditField from '@baserow/modules/database/mixins/rowEditField'
import rowEditFieldInput from '@baserow/modules/database/mixins/rowEditFieldInput'
import durationField from '@baserow/modules/database/mixins/durationField'

export default {
  mixins: [rowEditField, rowEditFieldInput, durationField],
  watch: {
    'field.duration_format': {
      handler() {
        this.updateCopy(this.field, this.value)
        this.updateFormattedValue(this.field, this.copy)
      },
    },
    value: {
      handler(newValue) {
        this.updateCopy(this.field, newValue)
        this.updateFormattedValue(this.field, this.copy)
      },
    },
  },
}
</script>