Skip to content

Commit c677c2f

Browse files
committed
Merge branch 'main' of https://github.com/TWC-codeit/TWC_FE
2 parents 425a680 + 2cde338 commit c677c2f

4 files changed

Lines changed: 28 additions & 38 deletions

File tree

Lines changed: 1 addition & 1 deletion
Loading

โ€Žsrc/components/PrivateRoute.jsxโ€Ž

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import { getCookie } from "../api/Cookie.js";
44

55
const PrivateRoute = ({ element }) => {
66
const token = getCookie("access_token");
7-
87

98
return token ? element : <Navigate to="/login" />;
109
};

โ€Žsrc/pages/ScrapList.jsxโ€Ž

Lines changed: 5 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ const formatDateHeading = (isoDate) => {
1717

1818
const ScrapList = () => {
1919
const [groupedScraps, setGroupedScraps] = useState({});
20-
const [columns, setColumns] = useState(5);
2120
const [isLogin, setIsLogin] = useState(true);
2221
const [isLoading, setIsLoading] = useState(true);
2322
const [accessToken, setAccessToken] = useState("");
@@ -26,11 +25,11 @@ const ScrapList = () => {
2625
try {
2726
const response = await axios.get(`${apiUrl}/scraps`, {
2827
headers: {
29-
Authorization: `Bearer ${accessToken}`, // ์ธ์ฆ ํ—ค๋” ์ถ”๊ฐ€
28+
Authorization: `Bearer ${accessToken}`,
3029
},
3130
});
3231

33-
const scraps = response.data.scraps; // scraps ๋ฐฐ์—ด ์ถ”์ถœ
32+
const scraps = response.data.scraps;
3433

3534
// ๋‚ ์งœ๋ณ„ ๊ทธ๋ฃนํ™”
3635
if (Array.isArray(scraps)) {
@@ -52,28 +51,6 @@ const ScrapList = () => {
5251
setIsLoading(false);
5352
}
5453
};
55-
// ์—ด ๊ฐœ์ˆ˜ ์—…๋ฐ์ดํŠธ ํ•จ์ˆ˜
56-
const updateColumns = () => {
57-
if (window.innerWidth >= 1200) setColumns(5);
58-
else if (window.innerWidth >= 1000) setColumns(4);
59-
else if (window.innerWidth >= 800) setColumns(3);
60-
else if (window.innerWidth >= 600) setColumns(2);
61-
else setColumns(1);
62-
};
63-
64-
// ๋นˆ ์นด๋“œ ์ฑ„์šฐ๊ธฐ ํ•จ์ˆ˜ (์—ด ๊ฐœ์ˆ˜์— ๋งž์ถฐ ๋™์ ์œผ๋กœ)
65-
const fillEmptyCards = (cards) => {
66-
const remainder = cards.length % columns;
67-
if (remainder === 0) return cards;
68-
const emptyCardsCount = columns - remainder;
69-
return [
70-
...cards,
71-
...Array(emptyCardsCount).fill({
72-
id: `empty-${cards.length}`,
73-
isEmpty: true,
74-
}),
75-
];
76-
};
7754

7855
useEffect(() => {
7956
const accessToken = getCookie("access_token");
@@ -84,12 +61,8 @@ const ScrapList = () => {
8461
}
8562
setAccessToken(accessToken);
8663
fetchScraps(accessToken);
87-
updateColumns();
88-
window.addEventListener("resize", updateColumns);
89-
return () => window.removeEventListener("resize", updateColumns);
9064
}, []);
9165

92-
/* ๋น„๋กœ๊ทธ์ธ ์‹œ ๋น„๋กœ๊ทธ์ธ ๋ชจ๋‹ฌ ๋ฆฌํ„ด์œผ๋กœ ๋ณ€๊ฒฝ ํ•„์š”*/
9366
if (!isLogin) {
9467
return <S.Message>๋กœ๊ทธ์ธ๋˜์ง€ ์•Š์€ ์‚ฌ์šฉ์ž</S.Message>;
9568
}
@@ -106,13 +79,12 @@ const ScrapList = () => {
10679
{Object.entries(groupedScraps).map(([date, scraps]) => (
10780
<S.Section key={date}>
10881
<S.DateHeading>{formatDateHeading(date)}</S.DateHeading>
109-
<S.Grid columns={columns}>
110-
{fillEmptyCards(scraps).map((scrap) => {
82+
<S.Grid>
83+
{scraps.map((scrap) => {
11184
return (
11285
<ScrapListItem
113-
key={scrap.id}
86+
key={scrap.scrapId}
11487
scrap={scrap}
115-
isEmpty={scrap.isEmpty}
11688
accessToken={accessToken}
11789
/>
11890
);

โ€Žsrc/styles/ScrapListStyle.jsโ€Ž

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,8 @@ import styled from "styled-components";
22
import palette from "../lib/colorPalette.js";
33

44
export const Container = styled.div`
5-
padding: 0 5%;
5+
padding: 0 10%;
66
background-color: ${palette.background};
7-
max-width: 1440px; /* ์ฝ˜ํ…์ธ ์˜ ์ตœ๋Œ€ ๋„ˆ๋น„ */
87
margin: 0 auto; /* ์–‘์ชฝ ์—ฌ๋ฐฑ์„ ๋™์ผํ•˜๊ฒŒ ํ•˜์—ฌ ๊ฐ€์šด๋ฐ ์ •๋ ฌ */
98
width: 100%; /* ์ „์ฒด ๋„ˆ๋น„๋ฅผ 100%๋กœ ์„ค์ • */
109
box-sizing: border-box;
@@ -31,7 +30,27 @@ export const DateHeading = styled.div`
3130

3231
export const Grid = styled.div`
3332
display: grid;
34-
grid-template-columns: repeat(${(props) => props.columns}, 1fr);
33+
34+
@media (min-width: 0px) {
35+
grid-template-columns: repeat(1, 1fr);
36+
}
37+
38+
@media (min-width: 600px) {
39+
grid-template-columns: repeat(2, 1fr);
40+
}
41+
42+
@media (min-width: 800px) {
43+
grid-template-columns: repeat(3, 1fr);
44+
}
45+
46+
@media (min-width: 1000px) {
47+
grid-template-columns: repeat(4, 1fr);
48+
}
49+
50+
@media (min-width: 1200px) {
51+
grid-template-columns: repeat(5, 1fr);
52+
}
53+
3554
gap: 20px;
3655
max-width: 100%; /* ์ตœ๋Œ€ ๋„ˆ๋น„๋ฅผ ์„ค์ •ํ•˜์—ฌ ์›น ํŽ˜์ด์ง€์—์„œ ์ค‘์•™์— ๋ฐฐ์น˜ */
3756
margin: 0 auto; /* ๊ฐ€์šด๋ฐ ์ •๋ ฌ */

0 commit comments

Comments
ย (0)