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