Added fetch old and new post

main
TZGyn 2 years ago
parent 0c9f436432
commit 8a4ad503ef
Signed by: TZGyn
GPG Key ID: 122EAF77AE81FD4A

@ -36,12 +36,12 @@ const createNewPost = async (data: unknown) => {
if (!parsedNewPost.success) return if (!parsedNewPost.success) return
const { data: post } = await useCustomFetch('/api/posts', { await useCustomFetch('/api/posts', {
method: 'POST', method: 'POST',
body: parsedNewPost.data, body: parsedNewPost.data,
}) })
await fetchPosts() await fetchPosts('new')
} }
const responseValidator = z.object({ const responseValidator = z.object({
@ -49,23 +49,31 @@ const responseValidator = z.object({
data: z.unknown().array(), data: z.unknown().array(),
}) })
const fetchPosts = async (refresh: Boolean = false) => { const fetchPosts = async (
order: 'new' | 'old' = 'old',
refresh: Boolean = false
) => {
const posts = usePosts() const posts = usePosts()
const lastPost = refresh const lastPost = refresh
? 0 ? 0
: posts.value.length : posts.value.length
? posts.value[posts.value.length - 1].sequence ? posts.value[posts.value.length - 1].sequence
: 0 : 0
const firstPost = posts.value.length ? posts.value[0].sequence : 0
const { data } = await useCustomFetch('/api/posts', { const { data } = await useCustomFetch('/api/posts', {
params: { lastPost: lastPost }, params: { lastPost: lastPost, firstPost: firstPost, order: order },
}) })
const response = responseValidator.safeParse(data.value) const response = responseValidator.safeParse(data.value)
if (!response.success) return if (!response.success) return
posts.value = [...posts.value, ...parsePosts(response.data.data)] if (order == 'old') {
posts.value = [...posts.value, ...parsePosts(response.data.data)]
} else {
posts.value = [...parsePosts(response.data.data), ...posts.value]
}
} }
export { export {

Loading…
Cancel
Save