WorkflowsShared.vue 991 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. <template>
  2. <shared-card
  3. v-for="workflow in workflows"
  4. :key="workflow.id"
  5. :data="workflow"
  6. :show-details="false"
  7. @execute="executeWorkflow(workflow)"
  8. @click="$router.push(`/workflows/${$event.id}/shared`)"
  9. />
  10. </template>
  11. <script setup>
  12. import { computed } from 'vue';
  13. import { useWorkflowStore } from '@/stores/workflow';
  14. import { arraySorter } from '@/utils/helper';
  15. import SharedCard from '@/components/newtab/shared/SharedCard.vue';
  16. const props = defineProps({
  17. search: {
  18. type: String,
  19. default: '',
  20. },
  21. sort: {
  22. type: Object,
  23. default: () => ({
  24. by: '',
  25. order: '',
  26. }),
  27. },
  28. });
  29. const workflowStore = useWorkflowStore();
  30. const workflows = computed(() => {
  31. const filtered = Object.values(workflowStore.shared).filter(({ name }) =>
  32. name.toLocaleLowerCase().includes(props.search.toLocaleLowerCase())
  33. );
  34. return arraySorter({
  35. data: filtered,
  36. key: props.sort.by,
  37. order: props.sort.order,
  38. });
  39. });
  40. </script>