import React from "react"
import { Box, Button, Typography } from "@material-ui/core"
import DefaultLayout from "@/layouts/DefaultLayout"
import errorMessages from "./models/errorMessages"
import { ErrorMsg, ErrorProps } from "./models/types"
import { useRouter } from "next/router"
interface Props {
statusCode: number
hasLayout: boolean
message?: string
redirect?: string
}
function CommonError({ statusCode, hasLayout, message, redirect }: Props) {
const router = useRouter()
const msg = (msg: ErrorMsg) => {
return (
{msg.title}
{" - "}
Error {statusCode}
{message || msg.message}
)
}
if (!hasLayout)
return (
{statusCode
? msg(errorMessages[statusCode])
: "An error occurred on client"}
)
return (
{statusCode
? msg(errorMessages[statusCode])
: "An error occurred on client"}
)
}
CommonError.getInitialProps = ({ res, err }: ErrorProps) => {
const statusCode = res ? res.statusCode : err ? err.statusCode : 404
return { statusCode }
}
export default CommonError