Skip to content

Commit 642e058

Browse files
Merge pull request #319 from kss761036/Next-김승석-sprint11
[김승석] Sprint11
2 parents d2b7b40 + 9ba593a commit 642e058

File tree

15 files changed

+935
-24
lines changed

15 files changed

+935
-24
lines changed

package-lock.json

Lines changed: 454 additions & 14 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
},
1111
"dependencies": {
1212
"@svgr/webpack": "^8.1.0",
13+
"axios": "^1.7.9",
1314
"dayjs": "^1.11.13",
1415
"next": "14.2.23",
1516
"react": "^18",

public/assets/img/icon_google.svg

Lines changed: 10 additions & 0 deletions
Loading

public/assets/img/icon_kakao.svg

Lines changed: 12 additions & 0 deletions
Loading

src/components/form/form-input.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,18 @@ interface Props {
44
type: string;
55
placeholder: string;
66
value?: string;
7+
name?: string;
78
onChange: (e: React.ChangeEvent<HTMLInputElement>) => void;
89
}
910

10-
const FormInput = ({ type, placeholder, value, onChange }: Props) => {
11+
const FormInput = ({ type, placeholder, value, name, onChange }: Props) => {
1112
return (
1213
<input
1314
className={styles.input}
1415
type={type}
1516
placeholder={placeholder}
1617
value={value}
18+
name={name}
1719
onChange={onChange}
1820
/>
1921
);

src/components/header-layout.module.css

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
}
3939
.header .my {
4040
margin-left: auto;
41+
cursor: pointer;
4142
}
4243

4344
@media (max-width: 744px) {

src/components/header-layout.tsx

Lines changed: 32 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,30 @@
11
import Link from "next/link";
22
import styles from "./header-layout.module.css";
3+
import { useEffect, useState } from "react";
4+
import { useRouter } from "next/router";
35

46
export default function HeaderLayout() {
7+
const [isLoggedIn, setIsLoggedIn] = useState(false);
8+
const router = useRouter();
9+
10+
useEffect(() => {
11+
const accessToken = localStorage.getItem("accessToken");
12+
if (accessToken) {
13+
setIsLoggedIn(true);
14+
}
15+
}, [router.pathname]);
16+
17+
const onLogout: React.MouseEventHandler<HTMLDivElement> = () => {
18+
const result = confirm("로그아웃 하시겠습니까?");
19+
if (result) {
20+
localStorage.removeItem("accessToken");
21+
localStorage.removeItem("refreshToken");
22+
localStorage.removeItem("user");
23+
setIsLoggedIn(false);
24+
} else {
25+
return;
26+
}
27+
};
528
return (
629
<header className={styles.header}>
730
<div className="inner">
@@ -27,9 +50,15 @@ export default function HeaderLayout() {
2750
<Link href="">중고마켓</Link>
2851
</li>
2952
</ul>
30-
<Link className={styles.my} href="">
31-
<img src="/assets/img/icon_my.svg" alt="마이페이지" />
32-
</Link>
53+
{isLoggedIn ? (
54+
<div className={styles.my} onClick={onLogout}>
55+
<img src="/assets/img/icon_my.svg" alt="마이페이지" />
56+
</div>
57+
) : (
58+
<Link href="/login" className={`btn ${styles.my}`}>
59+
로그인
60+
</Link>
61+
)}
3362
</div>
3463
</header>
3564
);

src/lib/axios.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
import axios from "axios";
2+
3+
const Instance = axios.create({
4+
baseURL: "https://panda-market-api.vercel.app",
5+
});
6+
7+
export default Instance;
8+
export { axios };

src/lib/format-data.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,5 @@ import dayjs from "dayjs";
33
export default function formatDate(dateString: string) {
44
const isoDate = new Date(dateString);
55
const formattedDate = dayjs(isoDate).format("YYYY. MM. DD");
6-
76
return formattedDate;
87
}

src/pages/boards/index.tsx

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,6 @@ export default function Page() {
3434
setBestPageSize(3);
3535
}
3636
}, [isMo, isTa]);
37-
38-
3937
const onSortToggle = () => {
4038
setSortState(!sortState);
4139
};
@@ -93,13 +91,11 @@ export default function Page() {
9391
setTimeout(() => {
9492
setSearch("");
9593
}, 100);
96-
9794
};
9895

9996
const ref = useOutsideClick(() => {
10097
setSortState(false);
10198
});
102-
10399
const handleScroll = () => {
104100
const bottom =
105101
window.innerHeight + document.documentElement.scrollTop ===
@@ -132,7 +128,6 @@ export default function Page() {
132128
<div className={styles.boart_common_title}>
133129
<div className="common_title">게시글</div>
134130
<Link className="btn" href="/addboard">
135-
136131
글쓰기
137132
</Link>
138133
</div>

0 commit comments

Comments
 (0)