index.vue 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  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 {{data.details.n_page}}. Se vuoi puoi</p>
  19. <a class="text-orange-700 hover:underline flex" href="#my-modal"><Icon-ic:baseline-add/> aggiungere una cosetta</a>
  20. </div>
  21. <div class='container mx-auto'>
  22. <nav>
  23. <button v-if='data.details.prev' @click='prev'>
  24. <Icon-ic:baseline-chevron-left style='font-size: 40px'/>
  25. </button>
  26. <button v-if='data.details.next' @click='next'>
  27. <Icon-ic:baseline-chevron-right style='font-size: 40px'/>
  28. </button>
  29. </nav>
  30. <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">
  31. <Cosetta v-for='cosetta in data.cosette' :key='cosetta.id' :cosetta='cosetta' />
  32. </div>
  33. </div>
  34. </section>
  35. </template>