<template>
  <div>
    <b-button
      variant="link"
      to="/health/event-logs"
      data-test-id="overviewEvents-button-eventLogs"
      class="float-md-right"
    >
      {{ $t('pageOverview.events.viewAllButton') }}
    </b-button>
    <b-table
      per-page="5"
      sort-by="id"
      sort-desc
      hover
      responsive="md"
      stacked="sm"
      show-empty
      :items="eventLogData"
      :fields="fields"
      :empty-text="$t('pageOverview.events.noHighEventsMsg')"
    >
      <template #cell(severity)="{ value }">
        <status-icon status="danger" />
        {{ value }}
      </template>
      <template #cell(date)="{ value }">
        <p class="mb-0">{{ value | formatDate }}</p>
        <p class="mb-0">{{ value | formatTime }}</p>
      </template>
    </b-table>
  </div>
</template>

<script>
import StatusIcon from '@/components/Global/StatusIcon';

export default {
  name: 'Events',
  components: { StatusIcon },
  data() {
    return {
      fields: [
        {
          key: 'id',
          label: this.$t('pageOverview.events.id'),
        },
        {
          key: 'severity',
          label: this.$t('pageOverview.events.severity'),
        },
        {
          key: 'type',
          label: this.$t('pageOverview.events.type'),
        },
        {
          key: 'date',
          label: this.$t('pageOverview.events.date'),
        },
        {
          key: 'description',
          label: this.$t('pageOverview.events.description'),
        },
      ],
    };
  },
  computed: {
    eventLogData() {
      return this.$store.getters['eventLog/highPriorityEvents'];
    },
  },
  created() {
    this.$store.dispatch('eventLog/getEventLogData').finally(() => {
      this.$root.$emit('overview-events-complete');
    });
  },
};
</script>
