Skip to content

Commit f75163e

Browse files
authored
Merge pull request #41 from TWC-codeit/Fix/Scraplist
[Fix] scraplist grid / bookmark icon fill ์†์„ฑ ๋ณ€๊ฒฝ
2 parents 9e041f7 + ed3bcf8 commit f75163e

4 files changed

Lines changed: 27 additions & 36 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: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,27 @@ export const DateHeading = styled.div`
3131

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

0 commit comments

Comments
ย (0)