fix: technical debts left by the Sites, Authors and SEO slices, plus backend support for the new Sites and Authors pagination

This commit is contained in:
Florian Sylvain committed 2026-10-19 00:25:31 +02:00
1 parent 9f4ce426a8
commit daf3594316
86 files changed
+4223 -1485

No files matched your search

+35
View File
@@ -0,0 +1,35 @@
import { computed, ref } from 'vue'
import { useSites, type Site } from '@/composables/useSites'
import type { ArticleListQuery } from '@/lib/articleListQuery'
export function useArticleSites(shownSite: () => string) {
const { listSites } = useSites()
const sites = ref<Site[]>([])
const sitesSettled = ref(false)
const severalSites = computed(() => sites.value.length > 1)
const siteName = computed(
() => sites.value.find((site) => site.key === shownSite())?.name ?? shownSite(),
)
async function fetchSites() {
try {
sites.value = await listSites()
} catch {
sites.value = []
}
}
function loadSites() {
return fetchSites().finally(() => {
sitesSettled.value = true
})
}
function usableSite(query: ArticleListQuery): ArticleListQuery {
const known = severalSites.value && sites.value.some((site) => site.key === query.site)
return query.site && !known ? { ...query, site: '' } : query
}
return { sites, sitesSettled, severalSites, siteName, loadSites, usableSite }
}