<template>
  <v-container fluid>
    <div class="mt-3 mb-6.5 mx-[3.5ch] text-center">
      <h1 class="text-2xl">{{ t("navGallery") }}</h1>
      <p>{{ t("navGalleryCaption") }}</p>
      <v-btn slim size="x-small" prepend-icon="mdi-upload" variant="text" color="info" to="/gallery/new">
        {{ t("attachmentUpload") }}
      </v-btn>
    </div>

    <div class="album">
      <v-card v-for="item in items" class="album-item mb-3" :to="`/gallery/${item.rid}`">
        <attachment-renderer :item="item" />
      </v-card>
    </div>

    <div class="flex p-5 justify-center items-center">
      <v-btn variant="outlined" text="Load more" :loading="loading" @click="load" />
    </div>
  </v-container>
</template>

<script setup lang="ts">
const { t } = useI18n()

useHead({
  title: t("navGallery"),
})

useSeoMeta({
  title: t("navGallery"),
  ogTitle: t("navGallery"),
  description: t("navGalleryCaption"),
  ogDescription: t("navGalleryCaption"),
  ogType: "website",
})

const config = useRuntimeConfig()

const items = ref<any[]>([])
const loading = ref(false)

async function load() {
  loading.value = true

  const res = await fetch(`${config.public.solarNetworkApi}/cgi/uc/attachments?take=20&offset=${items.value.length}&original=true`)
  const result = await res.json()

  items.value.push(...result.data)

  loading.value = false
}

onMounted(() => {
  load()
})
</script>

<style scoped>
.album {
  columns: 20rem;
  column-gap: 1rem;
}
</style>