diff --git a/src/pages/testpage/TestPagePanel.tsx b/src/pages/testpage/TestPagePanel.tsx
index 50970cc..6f34021 100644
--- a/src/pages/testpage/TestPagePanel.tsx
+++ b/src/pages/testpage/TestPagePanel.tsx
@@ -67,7 +67,7 @@ const [inhomeSensitivity, setinhomeSensitivity] = useState(0);
const [coldOrHot, setcoldOrHot] = useState(0);
const [summerOrWinter, setsummerOrWinter] = useState(0);
const navigate = useNavigate();
-const [loading, setLoading] = useState(true);
+const [loading, setLoading] = useState(false);
useEffect(() => {
console.log(`저장한 답변 ${selectedAnswer}`);
@@ -303,19 +303,17 @@ const [loading, setLoading] = useState(true);
);
-
+
// Handle the response as needed
console.log(response);
// Check if login is successful, then redirect to StarPage
if (response.ok) {
+ //setLoading(true);
// navigate('/testpage');
- navigate('/resulthome')
+ //navigate('/resulthome')
//
-
-
-
-
+ setLoading(true);
}
} catch (error) {
console.error('Error during login:', error);
@@ -499,92 +497,100 @@ const handlePrevPage = () => {
const isNextButtonDisabled = selectedAnswer === 0;
return (
+
+ {loading ?
+
+ :
- {questionIndex === 0 || questionIndex === 1?
-
-
-
해당하는 대답을 선택해 주세요!
-
+
+ }
+
+
);
}
diff --git a/src/recommendIntro/RecommendIntro.tsx b/src/recommendIntro/RecommendIntro.tsx
new file mode 100644
index 0000000..df5a9d8
--- /dev/null
+++ b/src/recommendIntro/RecommendIntro.tsx
@@ -0,0 +1,372 @@
+import { Box, FormControl, InputLabel, MenuItem, Select, SelectChangeEvent } from "@mui/material";
+import { Button } from "../components/common";
+import { useNavigate } from "react-router-dom";
+import { Loading } from "../components/Loading";
+import { useState } from "react";
+const departments = [
+ { value: '비공개', label: '비공개' },
+ { value: '인문대학', label: '인문대학' },
+ { value: '사회과학대학', label: '사회과학대학' },
+ { value: '사범대학', label: '사범대학' },
+ { value: '자연과학대학', label: '자연과학대학' },
+ { value: '생명공학대학', label: '생명공학대학' },
+ { value: '공학대학', label: '공학대학' },
+ { value: '창의ICT공과대학', label: '창의ICT공과대학' },
+ { value: '소프트웨어대학', label: '소프트웨어대학' },
+ { value: '의과대학', label: '의과대학' },
+ { value: '약학대학', label: '약학대학' },
+ { value: '적십자간호대학', label: '적십자간호대학' },
+ { value: '예술대학', label: '예술대학' },
+ { value: '예술공학대학', label: '예술공학대학' },
+ { value: '체육대학', label: '체육대학' },
+ // ... 다른 학과들을 추가할 수 있습니다.
+ ];
+ const mbtis = [
+ { value: '비공개', label: '비공개' },
+ { value: 'ENFP', label: 'ENFP' },
+ { value: 'ENFJ', label: 'ENFJ' },
+ { value: 'ENTP', label: 'ENTP' },
+ { value: 'ENTJ', label: 'ENTJ' },
+ { value: 'ESFP', label: 'ESFP' },
+ { value: 'ESFJ', label: 'ESFJ' },
+ { value: 'ESTP', label: 'ESTP' },
+ { value: 'ESTJ', label: 'ESTJ' },
+ { value: 'INFP', label: 'INFP' },
+ { value: 'INFJ', label: 'INFJ' },
+ { value: 'INTP', label: 'INTP' },
+ { value: 'INTJ', label: 'INTJ' },
+ { value: 'ISFP', label: 'ISFP' },
+ { value: 'ISFJ', label: 'ISFJ' },
+ { value: 'ISTP', label: 'ISTP' },
+ { value: 'ISTJ', label: 'ISTJ' },
+ // ... 다른 학과들을 추가할 수 있습니다.
+ ];
+export const RecommendIntro = () => {
+ const [dorm, setDorm] = useState('');
+ const [dorm_num, setDormNUM] = useState(0);
+ const [room, setRoom] = useState('');
+ const [room_num, setRoomNUM] = useState(0);
+
+ const [dept, setDept] = useState('');
+ const [stu_num, setStu_num] = useState('');
+ const [stu_NUM, setStu_NUM] = useState(0);
+ const [age, setAge] = useState('');
+ const [age_num, setAge_num] = useState(0);
+ const [mbti, setMbti] = useState('');
+ const [loading, setLoading] = useState(false);
+
+
+
+ const [dormValid, setDormValid] = useState(false);
+ const [roomValid, setRoomValid] = useState(false);
+ const [deptValid, setDeptValid] = useState(false);
+ const [stuNumValid, setStuNumValid] = useState(false);
+ const [ageValid, setAgeValid] = useState(false);
+ const [mbtiValid, setMbtiValid] = useState(false);
+ const handledormChange = (event: SelectChangeEvent) => {
+ setDorm(event.target.value as string);
+ setDormNUM(parseInt(dorm));
+ setDormValid(event.target.value as string !== '');
+ };
+ const handleroomChange = (event: SelectChangeEvent) => {
+ setRoom(event.target.value as string);
+ setRoomNUM(parseInt(room));
+ setRoomValid(event.target.value as string !== '');
+ };
+ const handledeptChange = (event: SelectChangeEvent) => {
+ setDeptValid(event.target.value as string !== '');
+ if(deptValid){
+ setDept(event.target.value as string);
+ }else{
+ setDept("비공개");
+ }
+
+ console.log(dept)
+ };
+ const departmentOptions = departments.map((department) => (
+
+ ));
+ const handlestu_numChange = (event: SelectChangeEvent) => {
+ setStuNumValid(event.target.value as string !== '');
+ if(stuNumValid){
+ setStu_num(event.target.value as string);
+ setStu_NUM(parseInt(stu_num));
+ }else{
+ setStu_NUM(0);
+ }
+ };
+ const handledageChange = (event: SelectChangeEvent) => {
+
+ setAgeValid(event.target.value as string !== '');
+ if(ageValid){
+ setAge(event.target.value as string);
+ setAge_num(parseInt(age))
+ }else{
+ setAge_num(0);
+ }
+ };
+ const handlembtiChange = (event: SelectChangeEvent) => {
+
+ setMbtiValid(event.target.value as string !== '');
+ if(mbtiValid){
+ setMbti(event.target.value as string)
+ }else{
+ setDept("비공개");
+ }
+ };
+ const mbtiOptions = mbtis.map((mbtis) => (
+
+ ));
+ const isFormValid = dormValid && roomValid ;
+
+
+ const handleSubmit = async (e: React.FormEvent) => {
+ console.log(`
+ 1.${dorm_num}
+ 2.${room_num}
+ 3.${dept}
+ 4.${stu_NUM}
+ 5.${age_num}
+ 6.${mbti}
+ `)
+ e.preventDefault();
+
+ //usenavigate('/resulthome');
+ if(isFormValid){
+ try {
+ const response = await fetch('http://aniroomi-env.eba-rj7upyms.ap-northeast-2.elasticbeanstalk.com/detail', {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/json',
+ },
+ body: JSON.stringify({
+ dorm: dorm_num,
+ room: room_num,
+ dept: dept,
+ stu_num: stu_NUM,
+ age: age_num,
+ mbti: mbti,
+ }),
+ credentials: 'include',
+ });
+
+ // Handle the response as needed
+ console.log(response);
+ setLoading(true);
+ // Check if login is successful, then redirect to StarPage
+
+ if (response.ok) {
+ //usenavigate('/resulthome');
+ //
+ setLoading(true);
+ }
+ } catch (error) {
+ console.error('Error during login:', error);
+ }
+ };
+ }
+
+ return (
+
+ {loading ?
+
+:
+
+
+
보다 정확한 추천을 위해,
+
아래의 내용을 입력해주세요!
+
+
+
+
+
+ {/* 기숙사 건물 */}
+
거주하게 될 기숙사 *
+
+
+ 건물
+
+
+
+
+
+ {/* 호실 */}
+
호실 인원 *
+
+
+ 인원
+
+
+
+
+
+
+
+
+
+
+
+ {/* 대학 */}
+
+
학과
+
+
+ 비공개
+
+
+
+
+
+ {/* 학번 */}
+
+
학번
+
+
+ 비공개
+
+
+
+
+
+
+
+
+
+
+ {/* 나이 */}
+
나이
+
+
+ 비공개
+
+
+
+
+
+
+ {/* mbti */}
+
mbti
+
+
+ 비공개
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ }
+
+
+
+
+
+ )
+}