import { usePageContext } from 'vike-react/usePageContext'
import { ErrorPage } from '@orchard9ai/design-system'

export { Page }

function Page() {
  const pageContext = usePageContext()
  let { abortReason } = pageContext

  if (!abortReason) {
    abortReason = pageContext.is404 ? 'Page not found.' : 'Something went wrong.'
  }

  const errorCode = pageContext.is404 ? 404 : 500
  const error = pageContext.errorWhileRendering instanceof Error 
    ? pageContext.errorWhileRendering 
    : undefined
  
  return (
    <ErrorPage
      code={errorCode}
      title={pageContext.is404 ? 'Page Not Found' : 'Oops! Something went wrong'}
      description={typeof abortReason === 'string' ? abortReason : 'An unexpected error occurred.'}
      showDetails={import.meta.env.DEV}
      error={error}
      actions={[
        { label: 'Go Home', href: '/', variant: 'primary' },
        { label: 'Contact Us', href: '/about', variant: 'secondary' }
      ]}
    />
  )
}