From efc4b4c2a045ffc9c965e3cadf75f45da829dd47 Mon Sep 17 00:00:00 2001 From: shlee9999 <95556588+shlee9999@users.noreply.github.com> Date: Mon, 9 Dec 2024 00:22:17 +0900 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8Feat:=20404=20Page?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/LazyComponents.tsx | 1 + src/pages/NotFoundPage/index.tsx | 23 +++++++++++++++++++++++ src/pages/NotFoundPage/styles.ts | 21 +++++++++++++++++++++ src/router.tsx | 10 +++++++--- 4 files changed, 52 insertions(+), 3 deletions(-) create mode 100644 src/pages/NotFoundPage/index.tsx create mode 100644 src/pages/NotFoundPage/styles.ts diff --git a/src/components/LazyComponents.tsx b/src/components/LazyComponents.tsx index 915622a4..2d21f91d 100644 --- a/src/components/LazyComponents.tsx +++ b/src/components/LazyComponents.tsx @@ -11,3 +11,4 @@ export const RegisterDogPage = lazy(() => import('~pages/RegisterPage/Dog')) export const WalkCompletePage = lazy(() => import('~pages/WalkCompletePage')) export const ProfilePage = lazy(() => import('~pages/ProfilePage')) export const FamilyDDangPage = lazy(() => import('~pages/FamilyDDangPage')) +export const NotFoundPage = lazy(() => import('~pages/NotFoundPage')) diff --git a/src/pages/NotFoundPage/index.tsx b/src/pages/NotFoundPage/index.tsx new file mode 100644 index 00000000..f02beea3 --- /dev/null +++ b/src/pages/NotFoundPage/index.tsx @@ -0,0 +1,23 @@ +import DogFood from '~assets/dog_food.svg?react' +import { ActionButton } from '~components/Button/ActionButton' +import { Typo24 } from '~components/Typo' +import * as S from './styles' +import { useNavigate } from 'react-router-dom' + +export default function NotFoundPage() { + const navigate = useNavigate() + return ( + + 404! + + 요청하신 페이지를 찾을 수 없어요 + + navigate(-1)}> + 되돌아가기 + + + + + + ) +} diff --git a/src/pages/NotFoundPage/styles.ts b/src/pages/NotFoundPage/styles.ts new file mode 100644 index 00000000..78586dc8 --- /dev/null +++ b/src/pages/NotFoundPage/styles.ts @@ -0,0 +1,21 @@ +import { styled } from 'styled-components' + +export const NotFoundPage = styled.div` + height: 100%; + display: flex; + align-items: center; + justify-content: center; + flex-direction: column; + padding: 0 20px 30%; +` + +export const ErrorMessage = styled.p` + font-size: 64px; + text-align: center; + font-weight: 800; + color: ${({ theme }) => theme.colors.brand.default}; +` +export const Wrapper = styled.div` + position: absolute; + bottom: 12%; +` diff --git a/src/router.tsx b/src/router.tsx index bda24bab..735420a6 100644 --- a/src/router.tsx +++ b/src/router.tsx @@ -1,8 +1,8 @@ -import Footer from '~components/Footer' import { createBrowserRouter, Outlet } from 'react-router-dom' -import * as Pages from './components/LazyComponents' -import ModalContainer from '~modals/ModalContainer' import { WebSocketProvider } from '~/WebSocketContext' +import Footer from '~components/Footer' +import ModalContainer from '~modals/ModalContainer' +import * as Pages from './components/LazyComponents' export const router = createBrowserRouter([ { @@ -47,6 +47,10 @@ export const router = createBrowserRouter([ path: '/profile/:id', element: , }, + { + path: '*', + element: , + }, ], }, {