All files / web/src/components/workflow-list WorkflowEmptyState.vue

0% Statements 0/25
100% Branches 1/1
100% Functions 1/1
0% Lines 0/25

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53                                                                                                         
<script setup lang="ts">
import { ElButton, ElEmpty } from 'element-plus'
 
interface Props {
  searchQuery?: string
  isLoading?: boolean
}
 
const props = defineProps<Props>()
 
const emit = defineEmits<{
  createWorkflow: []
  clearSearch: []
}>()
 
const description = props.searchQuery
  ? 'No workflows found matching your search'
  : 'No workflows yet'
 
const buttonText = props.searchQuery
  ? 'Clear search'
  : 'Create your first workflow'
 
function handleAction() {
  if (props.searchQuery) {
    emit('clearSearch')
  } else {
    emit('createWorkflow')
  }
}
</script>
 
<template>
  <div v-if="!isLoading" class="empty-state">
    <ElEmpty :description="description">
      <ElButton 
        :type="searchQuery ? 'default' : 'primary'" 
        @click="handleAction"
      >
        {{ buttonText }}
      </ElButton>
    </ElEmpty>
  </div>
</template>
 
<style lang="scss" scoped>
.empty-state {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 60vh;
}
</style>