import { GetAvailableProductsDocument } from '~/composables/graphql/public/exchange-generated' // Shared state const items = ref([]) const isLoading = ref(false) const isInitialized = ref(false) export function useCatalogProducts() { const { execute } = useGraphQL() const fetchProducts = async () => { if (isLoading.value) return isLoading.value = true try { const data = await execute( GetAvailableProductsDocument, {}, 'public', 'exchange' ) items.value = data?.getAvailableProducts || [] isInitialized.value = true } finally { isLoading.value = false } } const init = async () => { if (!isInitialized.value && items.value.length === 0) { await fetchProducts() } } return { items, isLoading, isInitialized, fetchProducts, init } }