feat: add page 404 #8
24
.idea/workspace.xml
generated
24
.idea/workspace.xml
generated
@@ -5,19 +5,12 @@
|
||||
</component>
|
||||
<component name="ChangeListManager">
|
||||
<list default="true" id="2a96f817-9dc2-4f3c-893a-c4974c750774" name="Changes" comment="">
|
||||
<change afterPath="$PROJECT_DIR$/src/app/sitemap/page.tsx" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/src/views/sitemap/index.ts" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/src/views/sitemap/model/breadcrums.ts" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/src/views/sitemap/model/links.ts" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/src/views/sitemap/styles.module.scss" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/src/views/sitemap/ui.tsx" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/src/app/not-found.tsx" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/src/views/not-found/index.ts" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/src/views/not-found/styles.module.scss" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/src/views/not-found/ui.tsx" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/app/ekspertiza/ocenochnaja/page.tsx" beforeDir="false" afterPath="$PROJECT_DIR$/src/app/ekspertiza/ocenochnaja/page.tsx" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/shared/api/api.service.ts" beforeDir="false" afterPath="$PROJECT_DIR$/src/shared/api/api.service.ts" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/shared/config/routes.ts" beforeDir="false" afterPath="$PROJECT_DIR$/src/shared/config/api-routes.ts" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/shared/const/menu.ts" beforeDir="false" afterPath="$PROJECT_DIR$/src/shared/const/menu.ts" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/views/index.ts" beforeDir="false" afterPath="$PROJECT_DIR$/src/views/index.ts" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/widgets/footer/ui.tsx" beforeDir="false" afterPath="$PROJECT_DIR$/src/widgets/footer/ui.tsx" afterDir="false" />
|
||||
</list>
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||
@@ -25,7 +18,7 @@
|
||||
<option name="LAST_RESOLUTION" value="IGNORE" />
|
||||
</component>
|
||||
<component name="DarkyenusTimeTracker">
|
||||
<option name="totalTimeSeconds" value="251068" />
|
||||
<option name="totalTimeSeconds" value="252589" />
|
||||
<option name="gitIntegration" value="true" />
|
||||
<option name="naggedAbout" value="1" />
|
||||
</component>
|
||||
@@ -33,8 +26,8 @@
|
||||
<option name="RECENT_TEMPLATES">
|
||||
<list>
|
||||
<option value="TypeScript JSX File" />
|
||||
<option value="SCSS File" />
|
||||
<option value="TypeScript File" />
|
||||
<option value="SCSS File" />
|
||||
</list>
|
||||
</option>
|
||||
</component>
|
||||
@@ -76,10 +69,10 @@
|
||||
"node.js.selected.package.tslint": "(autodetect)",
|
||||
"nodejs_package_manager_path": "npm",
|
||||
"npm.Next.js: server-side.executor": "Run",
|
||||
"prettierjs.PrettierConfiguration.Package": "C:\\dev-projects\\ocenka-web\\node_modules\\prettier",
|
||||
"prettierjs.PrettierConfiguration.Package": "C:\\dev-personal\\ocenka-web\\node_modules\\prettier",
|
||||
"settings.editor.selected.configurable": "terminal",
|
||||
"to.speed.mode.migration.done": "true",
|
||||
"ts.external.directory.path": "C:\\dev-projects\\ocenka-web\\node_modules\\typescript\\lib",
|
||||
"ts.external.directory.path": "C:\\dev-personal\\ocenka-web\\node_modules\\typescript\\lib",
|
||||
"vue.rearranger.settings.migration": "true"
|
||||
}
|
||||
}]]></component>
|
||||
@@ -142,6 +135,7 @@
|
||||
<workItem from="1765705636949" duration="904000" />
|
||||
<workItem from="1765708416527" duration="881000" />
|
||||
<workItem from="1765709337833" duration="2887000" />
|
||||
<workItem from="1765782728360" duration="1605000" />
|
||||
</task>
|
||||
<servers />
|
||||
</component>
|
||||
|
||||
BIN
public/images/404.png
Normal file
BIN
public/images/404.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 233 KiB |
11
src/app/not-found.tsx
Normal file
11
src/app/not-found.tsx
Normal file
@@ -0,0 +1,11 @@
|
||||
import { NotFound } from '@/views';
|
||||
import { Metadata } from 'next';
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: 'Ошибка 404 - страница не найдена',
|
||||
description: 'Вы попали на несуществующую страницу',
|
||||
};
|
||||
|
||||
export default function Page() {
|
||||
return <NotFound />;
|
||||
}
|
||||
@@ -5,6 +5,7 @@ export * from './privacy-policy';
|
||||
export * from './cookie';
|
||||
export * from './user-agreement';
|
||||
export * from './sitemap';
|
||||
export * from './not-found';
|
||||
|
||||
//Expertise
|
||||
export * from './expertise/category';
|
||||
|
||||
1
src/views/not-found/index.ts
Normal file
1
src/views/not-found/index.ts
Normal file
@@ -0,0 +1 @@
|
||||
export * from './ui';
|
||||
66
src/views/not-found/styles.module.scss
Normal file
66
src/views/not-found/styles.module.scss
Normal file
@@ -0,0 +1,66 @@
|
||||
.Container {
|
||||
margin: 0 auto;
|
||||
max-width: rem(1540px);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
gap: rem(40px);
|
||||
padding: rem(10px);
|
||||
|
||||
@include iftablet {
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
padding: rem(20px);
|
||||
}
|
||||
|
||||
@include iflaptop {
|
||||
padding: rem(28px);
|
||||
}
|
||||
|
||||
@include ifdesktop {
|
||||
padding: rem(40px);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.Image {
|
||||
flex: 1;
|
||||
.Img {
|
||||
width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.Info {
|
||||
flex: 1;
|
||||
|
||||
.Header {
|
||||
font-family: $font-roboto;
|
||||
font-weight: 500;
|
||||
font-size: rem(32px);
|
||||
line-height: 130%;
|
||||
color: $color-green;
|
||||
margin-bottom: rem(40px);
|
||||
}
|
||||
|
||||
.Text {
|
||||
font-family: $font-roboto;
|
||||
font-weight: 300;
|
||||
font-size: rem(16px);
|
||||
line-height: 130%;
|
||||
color: $color-text;
|
||||
margin-bottom: rem(20px);
|
||||
|
||||
a {
|
||||
color: $color-green;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
color: $color-green-hover;
|
||||
text-decoration: underline;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
34
src/views/not-found/ui.tsx
Normal file
34
src/views/not-found/ui.tsx
Normal file
@@ -0,0 +1,34 @@
|
||||
import s from './styles.module.scss';
|
||||
import Link from 'next/link';
|
||||
import { ROUTES } from '@shared/const/route';
|
||||
import notFoundImg from '@public/images/404.png';
|
||||
import Image from 'next/image';
|
||||
|
||||
function NotFound() {
|
||||
return (
|
||||
<>
|
||||
<section className={s.Container}>
|
||||
<div className={s.Image}>
|
||||
<Image
|
||||
className={s.Img}
|
||||
src={notFoundImg}
|
||||
alt={'Страница не найдена'}
|
||||
/>
|
||||
</div>
|
||||
<div className={s.Info}>
|
||||
<h2 className={s.Header}>Вы попали на несуществующую страницу!</h2>
|
||||
<p className={s.Text}>
|
||||
Вы можете вернутся к предыдущему шагу или перейти на главную
|
||||
</p>
|
||||
<p className={s.Text}>
|
||||
<Link href={ROUTES.HOME}>
|
||||
<strong>Перейти на главную</strong>
|
||||
</Link>
|
||||
</p>
|
||||
</div>
|
||||
</section>
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
export { NotFound };
|
||||
Reference in New Issue
Block a user