fix: handle nullable ads data and ensure safe filtering in advertisements
This commit is contained in:
parent
eedb155880
commit
7b4ea17a16
@ -11,7 +11,7 @@ const adResponseSchema = z.object({
|
|||||||
clicked: z.number(),
|
clicked: z.number(),
|
||||||
})
|
})
|
||||||
const adsResponseSchema = z.object({
|
const adsResponseSchema = z.object({
|
||||||
data: z.array(adResponseSchema),
|
data: z.array(adResponseSchema).nullable(),
|
||||||
})
|
})
|
||||||
|
|
||||||
export type TAdResponse = z.infer<typeof adResponseSchema>
|
export type TAdResponse = z.infer<typeof adResponseSchema>
|
||||||
|
|||||||
@ -111,7 +111,7 @@ export const AdvertisementsPage = () => {
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<UiTable
|
<UiTable
|
||||||
data={dataTable}
|
data={dataTable || []}
|
||||||
columns={dataColumns}
|
columns={dataColumns}
|
||||||
slots={dataSlot}
|
slots={dataSlot}
|
||||||
title="Daftar Spanduk Iklan"
|
title="Daftar Spanduk Iklan"
|
||||||
|
|||||||
@ -8,7 +8,7 @@ import type { Route } from './+types/_admin.lg-admin._dashboard.advertisements.u
|
|||||||
export const loader = async ({ params }: Route.LoaderArgs) => {
|
export const loader = async ({ params }: Route.LoaderArgs) => {
|
||||||
const { data: adsData } = await getAds()
|
const { data: adsData } = await getAds()
|
||||||
const { id } = params
|
const { id } = params
|
||||||
const adData = adsData.find((ads) => ads.id === id)
|
const adData = adsData?.find((ads) => ads.id === id)
|
||||||
return { adData }
|
return { adData }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -28,11 +28,13 @@ export const loader = async ({ request }: Route.LoaderArgs) => {
|
|||||||
const { data: subscribePlanData } = await getSubscribePlan()
|
const { data: subscribePlanData } = await getSubscribePlan()
|
||||||
const { data: categoriesData } = await getCategories()
|
const { data: categoriesData } = await getCategories()
|
||||||
let { data: adsData } = await getAds()
|
let { data: adsData } = await getAds()
|
||||||
adsData = adsData.filter(
|
if (adsData) {
|
||||||
(ad) =>
|
adsData = adsData?.filter(
|
||||||
new Date(ad.start_date) <= new Date() &&
|
(ad) =>
|
||||||
new Date(ad.end_date) >= new Date(),
|
new Date(ad.start_date) <= new Date() &&
|
||||||
)
|
new Date(ad.end_date) >= new Date(),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
userData,
|
userData,
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user