Skip to content

Commit 2fb6466

Browse files
authored
feat: 분석 요청 성공 페이지 UI 구현 (#31)
* feat: 제출 완료 페이지 구현 * refactor: 성공 모달 관련 코드 삭제 * feat: 분석 요청 성공 페이지 라우팅 경로 추가 * chore: eslint 설정 추가 * chore: 성공 페이지 배경 이미지 추가 - close #30 * refactor: eslint 설정 변경
1 parent 74edda5 commit 2fb6466

File tree

4 files changed

+40
-16
lines changed

4 files changed

+40
-16
lines changed

public/imgs/background/ryu.png

2.76 MB
Loading

src/App.jsx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,15 @@ import { BrowserRouter, Routes, Route } from "react-router-dom";
44
import MainPage from "@/pages/MainPage";
55
import VideoEditor from "@/pages/VideoEditor";
66

7+
import SubmitSuccess from "./pages/SubmitSuccess";
8+
79
const App = () => {
810
return (
911
<BrowserRouter>
1012
<Routes>
1113
<Route path="/" element={<MainPage />} />
1214
<Route path="/video_editor" element={<VideoEditor />} />
15+
<Route path="/submit_success" element={<SubmitSuccess />} />
1316
</Routes>
1417
</BrowserRouter>
1518
);

src/features/videoSubmit/components/VideoSubmitModal.jsx

Lines changed: 4 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import Modal from "@/shared/components/Modal";
99

1010
import CharacterSelectFrom from "./CharacterSelectForm";
1111
import EmailInputForm from "./EmailInputForm";
12-
import SubmitResultModal from "./SubmitResultModal";
1312

1413
const VideoSubmitModal = ({
1514
videoId,
@@ -21,7 +20,6 @@ const VideoSubmitModal = ({
2120
}) => {
2221
const [selectedCharacter, setSelectedCharacter] = useState(null);
2322
const [email, setEmail] = useState("");
24-
const [isSubmitSuccess, setIsSubmitSuccess] = useState(false);
2523
const [isLoading, setIsLoading] = useState(false);
2624
const navigate = useNavigate();
2725

@@ -49,7 +47,8 @@ const VideoSubmitModal = ({
4947
setStep(1);
5048
setSelectedCharacter(null);
5149
setEmail("");
52-
setIsSubmitSuccess(true);
50+
51+
navigate("/submit_success", { state: { email, selectedCharacter } });
5352
} catch (err) {
5453
setIsLoading(false);
5554
setError(err.response?.data?.message || err.message);
@@ -68,17 +67,12 @@ const VideoSubmitModal = ({
6867
}
6968
};
7069

71-
const handleSuccessModalClose = () => {
72-
setIsSubmitSuccess(false);
73-
navigate("/");
74-
};
75-
7670
const goToPreviousStep = () => {
7771
setStep(1);
7872
};
7973

8074
return (
81-
<div>
75+
<>
8276
<Modal
8377
onClose={closeModal}
8478
onClick={step === 1 ? selectCharacter : handleSubmit}
@@ -97,14 +91,8 @@ const VideoSubmitModal = ({
9791
/>
9892
)}
9993
</Modal>
100-
{isSubmitSuccess && (
101-
<SubmitResultModal
102-
onClose={handleSuccessModalClose}
103-
onClick={handleSuccessModalClose}
104-
/>
105-
)}
10694
{isLoading && <LoadingModal />}
107-
</div>
95+
</>
10896
);
10997
};
11098

src/pages/SubmitSuccess.jsx

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
import { useLocation, useNavigate } from "react-router-dom";
2+
3+
import Button from "@/shared/components/Button";
4+
5+
const SubmitSuccess = () => {
6+
const { state } = useLocation();
7+
const navigate = useNavigate();
8+
9+
return (
10+
<>
11+
<img
12+
src="/imgs/background/ryu.png"
13+
alt="배경 이미지"
14+
className="absolute top-0 left-0 w-full h-full object-cover z-0 brightness-50"
15+
/>
16+
<div className="flex flex-col items-center justify-center">
17+
<div className="relative space-y-4 max-w-md">
18+
<h1 className="text-3xl font-extrabold text-white">
19+
제출이 완료되었습니다!
20+
</h1>
21+
<p className="text-xl text-white font-medium">
22+
분석이 완료되면
23+
<span className="text-white font-bold">{state.email}</span>로 결과
24+
메일이 전송됩니다.
25+
</p>
26+
<Button onClick={() => navigate("/")}>홈으로</Button>
27+
</div>
28+
</div>
29+
</>
30+
);
31+
};
32+
33+
export default SubmitSuccess;

0 commit comments

Comments
 (0)