export const useFeedContent = (
endpoint: string,
queryParams: Ref<Record<string, any>> | Record<string, any> = {}
) => {
const route = useRoute()
const router = useRouter()
const page = ref(Number(route.query.page) || 1)
const buildQueryString = computed(() => {
const paramsObject = 'value' in queryParams ? queryParams.value : queryParams
const params = new URLSearchParams({
...paramsObject,
page: String(page.value)
})
return params.toString()
})
const { data: feedPosts, pending: isFeedLoading } = await useFetch<FeedPosts>(
() => `${endpoint}?${buildQueryString.value}`,
{
default: () => [],
watch: [buildQueryString]
}
)
const loadMoreFeed = async () => {
page.value += 1
await router.replace({
query: {
...route.query,
page: String(page.value)
}
})
}
return {
feedPosts,
isFeedLoading,
loadMoreFeed
}
}
export const useFeedContent = (
endpoint: string,
queryParams: Ref<Record<string, any>> | Record<string, any> = {}
) => {
const route = useRoute()
const router = useRouter()
const page = ref(Number(route.query.page) || 1)
const buildQueryString = computed(() => {
const paramsObject = 'value' in queryParams ? queryParams.value : queryParams
const params = new URLSearchParams({
...paramsObject,
page: String(page.value)
})
return params.toString()
})
const { data: feedPosts, pending: isFeedLoading } = await useFetch<FeedPosts>(
() => `${endpoint}?${buildQueryString.value}`,
{
default: () => [],
watch: [buildQueryString]
}
)
const loadMoreFeed = async () => {
page.value += 1
await router.replace({
query: {
...route.query,
page: String(page.value)
}
})
}
return {
feedPosts,
isFeedLoading,
loadMoreFeed
}
}