SpeciesFileGroup/taxonworks

View on GitHub
app/javascript/vue/tasks/dwca_import/components/ImportRunning.vue

Summary

Maintainability
Test Coverage
<template>
  <div class="import-running-box">
    <transition name="bounce">
      <div
        v-if="settings.isProcessing && !settings.importModalView"
        class="import-running-container panel content"
      >
        <div class="flex-separate middle">
          <div class="horizontal-left-content">
            <div class="import-spinner">
              <spinner-component :show-legend="false" />
            </div>
            <span>Importing rows...</span>
          </div>
          <button
            type="button"
            class="button button-default normal-input margin-medium-right"
            :disabled="settings.stopRequested"
            @click="stopImport"
          >
            Stop import
          </button>
        </div>
      </div>
    </transition>
  </div>
</template>

<script>
import SpinnerComponent from '@/components/ui/VSpinner'
import { GetterNames } from '../store/getters/getters'
import { MutationNames } from '../store/mutations/mutations'

export default {
  components: {
    SpinnerComponent
  },

  computed: {
    settings: {
      get() {
        return this.$store.getters[GetterNames.GetSettings]
      },

      set(value) {
        this.$store.commit(MutationNames.SetSettings, value)
      }
    }
  },

  methods: {
    stopImport() {
      this.settings.stopRequested = true
    }
  }
}
</script>
<style lang="scss" scoped>
.import-running-box {
  position: absolute;
  bottom: 20px;
  left: 50%;
  transform: translateX(-50%);
}
.import-running-container {
  background-color: white;
  width: 400px;
  height: 80px;
  transform-origin: center;

  .import-spinner {
    width: 80px;
    height: 80px;
  }

  .box-spinner {
    box-shadow: none;
  }
}
</style>