No Description
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

MenuContainer.vue 1010B

123456789101112131415161718192021222324252627282930313233
  1. <template>
  2. <div class="pb-4">
  3. <h5 class="mb-3">Menu</h5>
  4. <p v-if="loading">Loading menu ...</p>
  5. <div v-if="menus.length === 0 || filteredMenus.length === 0" class="row g-4 row-cols-lg-3">
  6. <p class="w-100 text-center">Menu yang dicari tidak ditemukan.</p>
  7. </div>
  8. <div v-else-if="isFilter || isSearch" class="row g-4 row-cols-lg-3">
  9. <div v-for="menu in filteredMenus" :key="menu.id" class="col">
  10. <CardMenu :data="menu" />
  11. </div>
  12. </div>
  13. <div v-else-if="menus" class="row g-4 row-cols-lg-3">
  14. <div v-for="menu in menus" :key="menu.id" class="col">
  15. <CardMenu :data="menu" />
  16. </div>
  17. </div>
  18. </div>
  19. </template>
  20. <script setup>
  21. import CardMenu from './CardMenu.vue'
  22. import { storeToRefs } from 'pinia'
  23. import { useMenuStore } from '../stores/menus'
  24. const { menus, filteredMenus, isFilter, isSearch, loading } = storeToRefs(useMenuStore())
  25. const { fetchMenus } = useMenuStore()
  26. fetchMenus()
  27. </script>
  28. <style lang="scss" scoped></style>