feat: enhance news fetching with pagination and active status filters

This commit is contained in:
Ardeman
2025-03-20 12:10:38 +08:00
parent d65aed6828
commit 6edca07fa6
8 changed files with 80 additions and 67 deletions
+3
View File
@@ -27,12 +27,15 @@ export const loader = async ({}: Route.LoaderArgs) => {
const spotlightData = getNews({
categories: [spotlightCode],
active: true,
})
const beritaData = getNews({
categories: [beritaCode],
active: true,
})
const kajianData = getNews({
categories: [kajianCode],
active: true,
})
return {
spotlightCategory,
+1 -2
View File
@@ -11,8 +11,7 @@ export const loader = async ({ params }: Route.LoaderArgs) => {
const { data: categoriesData } = await getCategories()
const { code } = params
const categoryData = categoriesData.find((category) => category.code === code)
let { data: newsData } = await getNews({ categories: [code] })
newsData = newsData.filter((news) => new Date(news.live_at) <= new Date())
const newsData = getNews({ categories: [code], active: true })
return { categoryData, newsData }
}
+4 -4
View File
@@ -15,7 +15,8 @@ export const loader = async ({ request, params }: Route.LoaderArgs) => {
const userAgent = request.headers.get('user-agent')
const ipAddress =
request.headers.get('cf-connecting-ip') ||
request.headers.get('x-forwarded-for')
request.headers.get('x-forwarded-for') ||
'localhost'
const { userToken: accessToken } = await handleCookie(request)
let userData
if (accessToken) {
@@ -43,13 +44,12 @@ export const loader = async ({ request, params }: Route.LoaderArgs) => {
const beritaCategory = categoriesData.find(
(category) => category.code === beritaCode,
)
let { data: beritaNews } = await getNews({ categories: [beritaCode] })
beritaNews = beritaNews.filter((news) => new Date(news.live_at) <= new Date())
const beritaData = getNews({ categories: [beritaCode], active: true })
return {
newsDetailData,
beritaCategory,
beritaNews,
beritaData,
shouldSubscribe,
}
}
+2 -1
View File
@@ -10,7 +10,8 @@ export const action = async ({ request, params }: Route.ActionArgs) => {
const userAgent = request.headers.get('user-agent')
const ipAddress =
request.headers.get('cf-connecting-ip') ||
request.headers.get('x-forwarded-for')
request.headers.get('x-forwarded-for') ||
'localhost'
const { userToken: accessToken } = await handleCookie(request)
const { id } = params
try {