diff --git a/package-lock.json b/package-lock.json
index 776371a..eee04dc 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -12,9 +12,11 @@
"@emotion/styled": "^11.11.0",
"@mui/icons-material": "^5.14.18",
"@mui/material": "^5.14.18",
+ "axios": "^1.6.2",
"next": "14.0.3",
"react": "^18",
"react-dom": "^18",
+ "recoil": "^0.7.7",
"sass": "^1.69.5"
},
"devDependencies": {
@@ -1430,6 +1432,11 @@
"has-symbols": "^1.0.3"
}
},
+ "node_modules/asynckit": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
+ },
"node_modules/autoprefixer": {
"version": "10.4.16",
"resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.16.tgz",
@@ -1488,6 +1495,16 @@
"node": ">=4"
}
},
+ "node_modules/axios": {
+ "version": "1.6.2",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.2.tgz",
+ "integrity": "sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==",
+ "dependencies": {
+ "follow-redirects": "^1.15.0",
+ "form-data": "^4.0.0",
+ "proxy-from-env": "^1.1.0"
+ }
+ },
"node_modules/axobject-query": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.2.1.tgz",
@@ -1723,6 +1740,17 @@
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"dev": true
},
+ "node_modules/combined-stream": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
+ "dependencies": {
+ "delayed-stream": "~1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
"node_modules/commander": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz",
@@ -1857,6 +1885,14 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
"node_modules/dequal": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz",
@@ -2608,6 +2644,25 @@
"integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==",
"dev": true
},
+ "node_modules/follow-redirects": {
+ "version": "1.15.3",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz",
+ "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://github.com/sponsors/RubenVerborgh"
+ }
+ ],
+ "engines": {
+ "node": ">=4.0"
+ },
+ "peerDependenciesMeta": {
+ "debug": {
+ "optional": true
+ }
+ }
+ },
"node_modules/for-each": {
"version": "0.3.3",
"resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
@@ -2617,6 +2672,19 @@
"is-callable": "^1.1.3"
}
},
+ "node_modules/form-data": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
+ "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
+ "dependencies": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.8",
+ "mime-types": "^2.1.12"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
"node_modules/fraction.js": {
"version": "4.3.7",
"resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz",
@@ -2837,6 +2905,11 @@
"integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==",
"dev": true
},
+ "node_modules/hamt_plus": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/hamt_plus/-/hamt_plus-1.0.2.tgz",
+ "integrity": "sha512-t2JXKaehnMb9paaYA7J0BX8QQAY8lwfQ9Gjf4pg/mk4krt+cmwmU652HOoWonf+7+EQV97ARPMhhVgU1ra2GhA=="
+ },
"node_modules/has-bigints": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz",
@@ -3540,6 +3613,25 @@
"node": ">=8.6"
}
},
+ "node_modules/mime-db": {
+ "version": "1.52.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/mime-types": {
+ "version": "2.1.35",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+ "dependencies": {
+ "mime-db": "1.52.0"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
"node_modules/minimatch": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
@@ -4102,6 +4194,11 @@
"react-is": "^16.13.1"
}
},
+ "node_modules/proxy-from-env": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
+ "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
+ },
"node_modules/punycode": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
@@ -4194,6 +4291,25 @@
"node": ">=8.10.0"
}
},
+ "node_modules/recoil": {
+ "version": "0.7.7",
+ "resolved": "https://registry.npmjs.org/recoil/-/recoil-0.7.7.tgz",
+ "integrity": "sha512-8Og5KPQW9LwC577Vc7Ug2P0vQshkv1y3zG3tSSkWMqkWSwHmE+by06L8JtnGocjW6gcCvfwB3YtrJG6/tWivNQ==",
+ "dependencies": {
+ "hamt_plus": "1.0.2"
+ },
+ "peerDependencies": {
+ "react": ">=16.13.1"
+ },
+ "peerDependenciesMeta": {
+ "react-dom": {
+ "optional": true
+ },
+ "react-native": {
+ "optional": true
+ }
+ }
+ },
"node_modules/reflect.getprototypeof": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.4.tgz",
diff --git a/package.json b/package.json
index 32a1703..373a9e2 100644
--- a/package.json
+++ b/package.json
@@ -13,9 +13,11 @@
"@emotion/styled": "^11.11.0",
"@mui/icons-material": "^5.14.18",
"@mui/material": "^5.14.18",
+ "axios": "^1.6.2",
"next": "14.0.3",
"react": "^18",
"react-dom": "^18",
+ "recoil": "^0.7.7",
"sass": "^1.69.5"
},
"devDependencies": {
diff --git a/src/app/feed/page.tsx b/src/app/feed/page.tsx
index 3a76205..7fe9b9e 100644
--- a/src/app/feed/page.tsx
+++ b/src/app/feed/page.tsx
@@ -1,20 +1,30 @@
"use client";
-import Menubar from "@/component/MenuBar"
-import WeatherBar from "@/component/WeatherBar"
+
+import FeedSearch from "@/component/FeedSearch";
+import WeatherBar from "@/component/WeatherBar";
+import FeedCategory from "@/component/FeedCategory";
+import FeedContenets from "@/component/FeedContents";
+import Menubar from "@/component/MenuBar";
+
+import { RecoilRoot } from "recoil";
+
+
export default function Feed(){
return(<>
-
-
+
+
+
>)
}
\ No newline at end of file
diff --git a/src/app/register/page.tsx b/src/app/register/page.tsx
index 8602a46..5aed6dc 100644
--- a/src/app/register/page.tsx
+++ b/src/app/register/page.tsx
@@ -5,12 +5,29 @@ import { useState } from "react";
import InputBar from "@/component/InputBar";
import Menubar from "@/component/MenuBar";
+import axios from "axios";
+
+///////////////////////////해야하는 작업/////////////////////////////
+
+// 희성이형하고 같이해야함
+//1. 비밀번호 확인 기능
+//2. 이메일 인증 전에는 데이터 전송을 해주지 않고, 이메일 전송을 통해 토큰을 받았을때만
+// 회원가입 데이터를 전송해주는 기능
+//3. 소셜데이터 로그인 버튼과 소셜 로그인 기능
+
+///////////////////////////////////////////////////////////////////
export default function Register(): JSX.Element {
- const [email, setEmail] = useState("");
- const [name, setName] = useState("");
- const [nickname, setNickname] = useState("");
- const [password, setPassword] = useState("");
- const [repassword, setRepassword] = useState("");
+ const [email, setEmail] = useState
("");
+ const [name, setName] = useState("");
+ const [nickname, setNickname] = useState("");
+ const [password, setPassword] = useState("");
+ const [repassword, setRepassword] = useState("");
+ console.log("========================================");
+ console.log("이메일", email);
+ console.log("이름", name);
+ console.log("닉네임", nickname);
+ console.log("비번", password);
+ console.log("비번 확인", repassword);
const validateEmail = (inputValue: string) => {
const emailFormat =
@@ -27,7 +44,39 @@ export default function Register(): JSX.Element {
return inputValue === password;
};
- const caster_register = () => {};
+ const verify_btn = async() => {
+ console.log("Verify 버튼이 클릭되었습니다.");
+
+ const verify_email = await axios({
+ method : "POST",
+ url : "https://www.jerneithe.site/user/profile",
+ data : email
+ });
+
+
+ }
+
+ const caster_register = async() => {
+ const req_regdata = {
+ email,
+ name,
+ nickname,
+ password,
+ repassword,
+ }
+
+ console.log(req_regdata);
+
+ const register_data = await axios({
+ method : "POST",
+ url : "https://www.jerneithe.site/user/signup",
+ data : req_regdata
+ });
+
+
+
+ };
+
return (
@@ -50,6 +99,7 @@ export default function Register(): JSX.Element {
button // 버튼을 사용한다고 명시
buttonId="btn_verify"
buttonText="인증"
+ onButtonClick={verify_btn}
autoFocus
/>
@@ -94,7 +144,7 @@ export default function Register(): JSX.Element {
onChange={(value: string) => setRepassword(value)}
/>
-