Binary files /dev/null and b/public/images/network-error.png differ @@ -52,6 +52,15 @@ axios.interceptors.response.use(async (response) => { return response }) +axios.interceptors.response.use( + (response) => response, + (error) => { + if (!error.response) { + window.location.href = '/network-error' + } + return error + } +) const inter = Raleway({ subsets: ['latin'] }) @@ -0,0 +1,6 @@ +import { NetworkError } from '#/views/network-error/' +import { getDefaultLayout } from '#/widgets/layouts' + +NetworkError.getLayout = getDefaultLayout({ titlePage: 'Сетевая ошибка' }) + +export default NetworkError @@ -4,3 +4,13 @@ export const api = axios.create({ validateStatus: () => true, baseURL: process.env.NEXT_PUBLIC_API_HOST, }) + +api.interceptors.response.use( + (response) => response, + (error) => { + if (!error.response) { + window.location.href = '/network-error' + } + return error + } +) @@ -0,0 +1 @@ +export * from './info-page-template' @@ -1,9 +1,9 @@ import Link from 'next/link' import { CommonButton } from '../../button' -import styles from './service-page.module.scss' +import styles from './info-page-template.module.scss' import Image from 'next/image' -interface ServicePageProps { +interface InfoPageTemplateProps { primaryTitle: string secondaryTitle: string description: string @@ -13,7 +13,15 @@ interface ServicePageProps { imageAlt: string } -export const ServicePage = ({ primaryTitle, secondaryTitle, description, buttonText, buttonOnClick, imageUrl, imageAlt }: ServicePageProps) => { +export const InfoPageTemplate = ({ + primaryTitle, + secondaryTitle, + description, + buttonText, + buttonOnClick, + imageUrl, + imageAlt, +}: InfoPageTemplateProps) => { return ( <>