import { isRouteErrorResponse } from 'react-router' import { getCategories } from '~/apis/common/get-categories' import { getNews } from '~/apis/common/get-news' import { Card } from '~/components/ui/card' import { NewsPage } from '~/pages/news' import type { Route } from './+types/_news._index' export const loader = async ({}: Route.LoaderArgs) => { const { data: categoriesData } = await getCategories() const spotlightCode = 'spotlight' const spotlightCategory = categoriesData.find( (category) => category.code === spotlightCode, ) const beritaCode = 'berita' const beritaCategory = categoriesData.find( (category) => category.code === beritaCode, ) const kajianCode = 'kajian' const kajianCategory = categoriesData.find( (category) => category.code === kajianCode, ) const spotlightData = getNews({ categories: [spotlightCode], active: true, }) const beritaData = getNews({ categories: [beritaCode], active: true, }) const kajianData = getNews({ categories: [kajianCode], active: true, }) return { spotlightCategory, beritaCategory, kajianCategory, spotlightData, beritaData, kajianData, } } export const ErrorBoundary = ({ error }: Route.ErrorBoundaryProps) => { let message = 'Oops!' let details = 'An unexpected error occurred.' let stack: string | undefined if (isRouteErrorResponse(error)) { message = error.status === 404 ? '404' : 'Error' details = error.status === 404 ? 'The requested page could not be found.' : error.statusText || details } else if (import.meta.env.DEV && error && error instanceof Error) { details = error.message stack = error.stack } return (

{message}

{details}

{stack && (
          {stack}
        
)}
) } const NewsIndexLayout = () => export default NewsIndexLayout