Skip to content
Snippets Groups Projects
TextStateMenu.vue 1.11 KiB
Newer Older
<script setup lang="ts">
import { deleteEntity } from '@/app/helpers';
import type { IParagraph } from '@/app/interfaces/entities';

interface Props {
  entityData: IParagraph;
}

const props = defineProps<Props>();

const emit = defineEmits(['deleteEntity', 'addTitle', 'removeTitle']);

const speedDialState = computed(() => {
  const state = [];
  if (!props.entityData?.title && props.entityData?.title !== '') {
    state.push({
      label: 'Title',
      icon: 'pi pi-plus',
      command: () => emit('addTitle')
    });
  }
  if (props.entityData?.title || props.entityData?.title === '') {
    state.push({
      label: 'Title',
      icon: 'pi pi-trash',
      command: () => emit('removeTitle')
    });
  }
  state.push({
    label: 'Delete',
    icon: 'pi pi-trash',
    command: () => deleteEntity(props.entityData.entity_uuid)
  });
  return state;
});
  <div class="relative z-40">
    <MenuDial v-model:isActive="isMenu" :items="speedDialState" size="large"></MenuDial>
  </div>
</template>

<style>
.speedDialRoot {
  justify-content: flex-start !important;
}
</style>