Skip to content

Commit 4cad0c2

Browse files
authored
Merge pull request #24 from Seol-JY/feat/skeleton
[FEAT]: 스켈레톤 UI 추가
2 parents 7e886e0 + 916246c commit 4cad0c2

File tree

5 files changed

+22
-3
lines changed

5 files changed

+22
-3
lines changed

client/public/img/skeleton-bright.png

993 Bytes
Loading

client/public/img/skeleton-dark.png

1.06 KB
Loading

client/src/App.js

+1
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ function App() {
8080
setFile={setFile}
8181
fileLength={fileLength}
8282
setFinishTrigger={setFinishTrigger}
83+
daynight={daynight}
8384
/>
8485

8586
<ul>

client/src/components/LeaderBoard.jsx

+20-2
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,13 @@ import { useState, useEffect, useCallback } from "react";
33
import { useInView } from "react-intersection-observer";
44
import LeaderBoardContents from "./LeaderBoardContents";
55

6-
export default function LeaderBoard() {
6+
export default function LeaderBoard({ daynight }) {
77
const [prev, prevInView] = useInView(); // 무한 스크롤용 ref - 이전
88
const [next, nextInView] = useInView(); // 무한 스크롤용 ref - 이후
99
const [page, setPage] = useState(1);
1010
const [loading, setLoading] = useState(false);
1111
const [items, setItems] = useState([]);
1212
const [error, setError] = useState(false); // 서버 에러
13-
1413
/**
1514
* 이전 방향 무한스크롤을 잠시 deprecated.
1615
*/
@@ -92,6 +91,25 @@ export default function LeaderBoard() {
9291
height: "25px",
9392
}}
9493
>
94+
<ul>
95+
{[...Array(loading && items.length == 0 ? 14 : 3)].map(
96+
(_, index) => (
97+
<li key={index} className="sidebarsection-rank-items">
98+
<img
99+
src={
100+
daynight % 2
101+
? "/img/skeleton-bright.png"
102+
: "/img/skeleton-dark.png"
103+
}
104+
style={{
105+
transition: "all 3s",
106+
}}
107+
/>
108+
</li>
109+
)
110+
)}
111+
</ul>
112+
95113
<img alt="loading..." src={"img/loading.gif"} />
96114
</li>
97115
)}

client/src/components/Sidebar.jsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ export default function Sidebar(props) {
6363
<ul>
6464
<li className="sidebarsection-header">RANKING</li>
6565
</ul>
66-
<LeaderBoard />
66+
<LeaderBoard daynight={props.daynight} />
6767
</div>
6868
);
6969
}

0 commit comments

Comments
 (0)