25 lines
516 B
TypeScript
25 lines
516 B
TypeScript
import { onMounted, ref } from 'vue'
|
|||
|
|
import { fetchBanners, type AppBannerDto } from '@/services/agentApi'
|
||
|
|
|
||
|
|
export function useSlotBanners(slot: string) {
|
||
|
|
const banners = ref<AppBannerDto[]>([])
|
||
|
|
const loading = ref(true)
|
||
|
|
|
||
|
|
async function load() {
|
||
|
|
loading.value = true
|
||
|
|
try {
|
||
|
|
banners.value = await fetchBanners(slot)
|
||
|
|
} catch {
|
||
|
|
banners.value = []
|
||
|
|
} finally {
|
||
|
|
loading.value = false
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
onMounted(() => {
|
||
|
|
void load()
|
||
|
|
})
|
||
|
|
|
||
|
|
return { banners, loading, reload: load }
|
||
|
|
}
|