index.vue 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. <script setup>
  2. const page = ref(0)
  3. let { data, refresh } = await useFetch(() => `/api/cosette?page=${page.value}`)
  4. function next() {
  5. page.value++
  6. refresh()
  7. }
  8. function prev() {
  9. page.value--
  10. refresh()
  11. }
  12. </script>
  13. <template>
  14. <section class="bg-white py-8">
  15. <Upload />
  16. <Hero />
  17. <div class="container mx-auto flex items-center flex-wrap pt-4 pb-12 px-2">
  18. <p>Ci sono <strong>{{ data.details.count }}</strong> cosette in tutto, sei a pagina {{ data.details.page + 1 }} di
  19. {{ data.details.n_page }}. Se vuoi puoi</p>
  20. <a class="text-orange-700 hover:underline flex" href="#my-modal">
  21. <Icon-ic:baseline-add /> aggiungere una cosetta
  22. </a>
  23. </div>
  24. <div class='container mx-auto'>
  25. <nav>
  26. <button v-if='data.details.prev' @click='prev'>
  27. <Icon-ic:baseline-chevron-left style='font-size: 40px' />
  28. </button>
  29. <button v-if='data.details.next' @click='next'>
  30. <Icon-ic:baseline-chevron-right style='font-size: 40px' />
  31. </button>
  32. </nav>
  33. <div class="md:p-5 p-1 grid grid-cols-1 sm:grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-3 gap-5">
  34. <Cosetta v-for='cosetta in data.cosette' :key='cosetta.id' :cosetta='cosetta' />
  35. </div>
  36. </div>
  37. </section>
  38. </template>