From 20b5430359f527848d6084f9ed422859e2ae2fcb Mon Sep 17 00:00:00 2001 From: shooukie Date: Thu, 6 Aug 2026 16:11:09 +0900 Subject: [PATCH 1/6] =?UTF-8?q?feat:=20=ED=8E=98=EC=9D=B4=EC=A7=80=20?= =?UTF-8?q?=EB=9D=BC=EC=9A=B0=ED=8A=B8=20path=20=EC=83=81=EC=88=98=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/routes/paths.ts | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 src/routes/paths.ts diff --git a/src/routes/paths.ts b/src/routes/paths.ts new file mode 100644 index 0000000..ae8696d --- /dev/null +++ b/src/routes/paths.ts @@ -0,0 +1,24 @@ +export const PATH = { + LANDING: "/", + AUTH: "/auth", + + // HomePage + HOME: "/home", + + //MissionPage + MISSIONS: "/missions", + MISSION_DETAIL: "/missions/:missionId", + + //MapPage + MAP: "/map", + + //RewardsPage + REWARDS: "/rewards", + + // MyPage + MY: "/my", + QUESTY_CUSTOMIZE: "/my/customize", + + // Error + NOT_FOUND: "*", +} as const; From 063770fa64254578c226dd5a2d0a0bcd98d953bc Mon Sep 17 00:00:00 2001 From: shooukie Date: Thu, 13 Aug 2026 11:34:04 +0900 Subject: [PATCH 2/6] =?UTF-8?q?refactor:=20Auth,=20Mission=20=ED=8E=98?= =?UTF-8?q?=EC=9D=B4=EC=A7=80=20=EC=BB=B4=ED=8F=AC=EB=84=8C=ED=8A=B8=20?= =?UTF-8?q?=EB=B6=84=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/Auth/LoginPage.tsx | 51 +++++++ src/pages/Auth/SignupCheckPage.tsx | 39 ++++++ src/pages/Auth/SignupPage.tsx | 36 +++++ src/pages/AuthPages.tsx | 84 ----------- src/pages/MissionPages.tsx | 132 ------------------ src/pages/{ => mission}/MissionDetailPage.tsx | 34 +++-- src/pages/mission/MissionPage.tsx | 3 + src/pages/mission/MissionPhotoPage.tsx | 89 ++++++++++++ src/pages/mission/MissionRecordPage.tsx | 72 ++++++++++ src/routes/paths.ts | 6 +- 10 files changed, 314 insertions(+), 232 deletions(-) create mode 100644 src/pages/Auth/LoginPage.tsx create mode 100644 src/pages/Auth/SignupCheckPage.tsx create mode 100644 src/pages/Auth/SignupPage.tsx delete mode 100644 src/pages/AuthPages.tsx delete mode 100644 src/pages/MissionPages.tsx rename src/pages/{ => mission}/MissionDetailPage.tsx (81%) create mode 100644 src/pages/mission/MissionPage.tsx create mode 100644 src/pages/mission/MissionPhotoPage.tsx create mode 100644 src/pages/mission/MissionRecordPage.tsx diff --git a/src/pages/Auth/LoginPage.tsx b/src/pages/Auth/LoginPage.tsx new file mode 100644 index 0000000..50ee634 --- /dev/null +++ b/src/pages/Auth/LoginPage.tsx @@ -0,0 +1,51 @@ +import { useNavigate } from "react-router-dom"; +import { Button } from "../../components/UI"; +import { figmaAssets } from "../../data/quespot"; +import { Chrome, LogIn, MapPinned } from "lucide-react"; +import { PATH } from "@/routes/paths"; + +export default function LoginPage() { + const navigate = useNavigate(); + return ( + <> +
+
+ + + + Quespot +
+ +
+ Quespot 캐릭터 +

미션으로 떠나는 여행

+

숨은 장소를 발견하고, 인증 미션을 완료하며 보상을 모아보세요.

+
+ +
+ + +
+ + +
+ + ); +} diff --git a/src/pages/Auth/SignupCheckPage.tsx b/src/pages/Auth/SignupCheckPage.tsx new file mode 100644 index 0000000..83258b1 --- /dev/null +++ b/src/pages/Auth/SignupCheckPage.tsx @@ -0,0 +1,39 @@ +import { PATH } from "@/routes/paths"; +import { Button } from "../../components/UI"; +import { ShieldCheck, UserRound } from "lucide-react"; +import { useNavigate } from "react-router-dom"; + +export default function SignupCheckPage() { + const rows = [ + "전체 동의합니다.", + "[필수] 서비스 이용약관", + "[필수] 개인정보 수집 및 이용 동의", + "[필수] 만 14세 이상입니다.", + ]; + const navigate = useNavigate(); + return ( + <> +
+

약관동의

+
+ {rows.map((row, index) => ( + + ))} +
+ +
+ + ); +} diff --git a/src/pages/Auth/SignupPage.tsx b/src/pages/Auth/SignupPage.tsx new file mode 100644 index 0000000..7aeac1f --- /dev/null +++ b/src/pages/Auth/SignupPage.tsx @@ -0,0 +1,36 @@ +import { useNavigate } from "react-router-dom"; +import { Button, TextField } from "../../components/UI"; +import { Mail } from "lucide-react"; +import { PATH } from "@/routes/paths"; + +export default function SignupPage() { + const navigate = useNavigate(); + return ( + <> +
+

회원가입

+ + + + + + + 이미 계정이 있으신가요? 로그인 + +
+ + ); +} diff --git a/src/pages/AuthPages.tsx b/src/pages/AuthPages.tsx deleted file mode 100644 index d81ecf6..0000000 --- a/src/pages/AuthPages.tsx +++ /dev/null @@ -1,84 +0,0 @@ -import { DeviceFrame } from "../components/DeviceFrame"; -import { Button, TextField } from "../components/UI"; -import { figmaAssets } from "../data/quespot"; -import { Chrome, LogIn, Mail, MapPinned, ShieldCheck, UserRound } from "lucide-react"; - -type LoginPageProps = { - onLogin?: () => void; - onSignup?: () => void; -}; - -export function LoginPage({ onLogin, onSignup }: LoginPageProps) { - return ( - -
-
- - - - Quespot -
- -
- Quespot 캐릭터 -

미션으로 떠나는 여행

-

숨은 장소를 발견하고, 인증 미션을 완료하며 보상을 모아보세요.

-
- -
- - -
- - -
-
- ); -} - -export function SignupPage() { - return ( - -
-

회원가입

- - - - - - - 이미 계정이 있으신가요? 로그인 - -
-
- ); -} - -export function TermsPage() { - const rows = ["전체 동의합니다.", "[필수] 서비스 이용약관", "[필수] 개인정보 수집 및 이용 동의", "[필수] 만 14세 이상입니다."]; - - return ( - -
-

약관동의

-
- {rows.map((row, index) => ( - - ))} -
- -
-
- ); -} diff --git a/src/pages/MissionPages.tsx b/src/pages/MissionPages.tsx deleted file mode 100644 index 7de232f..0000000 --- a/src/pages/MissionPages.tsx +++ /dev/null @@ -1,132 +0,0 @@ -import { DeviceFrame, SubHeader } from "../components/DeviceFrame"; -import { Button, Panel } from "../components/UI"; -import { figmaAssets } from "../data/quespot"; -import { Camera, Check, ClipboardList, Coffee, ImageUp, Lightbulb, MessageCircle, PencilLine, Plus, X } from "lucide-react"; - -type BackablePageProps = { - onBack?: () => void; -}; - -export function PhotoCertificationPage({ onBack }: BackablePageProps) { - return ( - - - - 힌트 - - } - /> -
- -

- - 인증 안내 -

- 인사동 전통찻집 방문 -

전통찻집 간판이 보이도록 외관을 촬영하거나, 내부에서 차를 즐기는 사진을 찍어 제출하세요.

-
- - -

예시 사진

-
-
-
- 좋은 인증 예시 - - 좋은 예 - -
-
✅ 간판·내부 포함
-
-
-
- 나쁜 인증 예시 - - 나쁜 예 - -
-
❌ 장소 식별 불가
-
-
-
- - -
- -
-

사진을 촬영하거나 업로드하세요

-
- - -
-
- -
-
- ); -} - -export function MissionRecordPage({ onBack }: BackablePageProps) { - return ( - - -
-
- - - -
- 인사동 전통찻집 - 2026년 7월 8일 방문 -
-
- - -
-

- - 작성 프롬프트 -

- -
-
"오늘 방문한 장소에서 가장 인상 깊었던 점은?"
-