Skip to content

Commit 744e03f

Browse files
committed
docs: update reactive api docs
1 parent 2412c4b commit 744e03f

File tree

4 files changed

+873
-207
lines changed

4 files changed

+873
-207
lines changed
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
import React from "react";
2+
import Flicking, { useFlickingReactiveAPI } from "@egjs/react-flicking";
3+
import Pagination from "@mui/material/Pagination";
4+
import Panel from "@site/src/component/Panel";
5+
6+
export default () => {
7+
const flickingRef = React.createRef<Flicking>();
8+
const {
9+
currentPanelIndex,
10+
totalPanelCount,
11+
moveTo
12+
} = useFlickingReactiveAPI(flickingRef);
13+
14+
const handlePageChange = (event: React.ChangeEvent<unknown>, page: number) => {
15+
// MUI Pagination은 1부터 시작하므로 0부터 시작하는 인덱스로 변환
16+
moveTo(page - 1);
17+
};
18+
19+
return (
20+
<>
21+
<Flicking ref={flickingRef}>
22+
{[0, 1, 2, 3, 4, 5, 6, 7, 8, 9].map((index) => (
23+
<Panel key={index} index={index} />
24+
))}
25+
</Flicking>
26+
<Pagination
27+
page={currentPanelIndex + 1}
28+
count={totalPanelCount}
29+
onChange={handlePageChange}
30+
color="primary"
31+
size="large"
32+
/>
33+
</>
34+
);
35+
};
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
import React from "react";
2+
import Flicking, { useFlickingReactiveAPI } from "@egjs/react-flicking";
3+
import Button from "@mui/material/Button";
4+
import Panel from "@site/src/component/Panel";
5+
6+
export default () => {
7+
const flickingRef = React.createRef<Flicking>();
8+
const {
9+
isReachStart,
10+
isReachEnd,
11+
moveTo
12+
} = useFlickingReactiveAPI(flickingRef);
13+
14+
const handlePrev = () => {
15+
if (!isReachStart) {
16+
moveTo(flickingRef.current.index - 1);
17+
}
18+
};
19+
20+
const handleNext = () => {
21+
if (!isReachEnd) {
22+
moveTo(flickingRef.current.index + 1);
23+
}
24+
};
25+
26+
return (
27+
<>
28+
<Flicking ref={flickingRef}>
29+
{[0, 1, 2, 3, 4, 5, 6, 7, 8, 9].map((index) => (
30+
<Panel key={index} index={index} />
31+
))}
32+
</Flicking>
33+
<div style={{ display: "flex", gap: "10px", justifyContent: "center", marginTop: "20px" }}>
34+
<Button
35+
variant="contained"
36+
onClick={handlePrev}
37+
disabled={isReachStart}
38+
>
39+
Prev
40+
</Button>
41+
<Button
42+
variant="contained"
43+
onClick={handleNext}
44+
disabled={isReachEnd}
45+
>
46+
Next
47+
</Button>
48+
</div>
49+
</>
50+
);
51+
};
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
import React from "react";
2+
import Flicking, { useFlickingReactiveAPI } from "@egjs/react-flicking";
3+
import LinearProgress from "@mui/material/LinearProgress";
4+
import Panel from "@site/src/component/Panel";
5+
6+
export default () => {
7+
const flickingRef = React.createRef<Flicking>();
8+
const {
9+
progress
10+
} = useFlickingReactiveAPI(flickingRef);
11+
12+
return (
13+
<div style={{ width: "100%" }}>
14+
<Flicking
15+
ref={flickingRef}
16+
moveType="freeScroll"
17+
>
18+
{[0, 1, 2, 3, 4, 5, 6, 7, 8, 9].map((index) => (
19+
<Panel key={index} index={index} />
20+
))}
21+
</Flicking>
22+
23+
<div style={{ marginTop: "20px" }}>
24+
<LinearProgress
25+
variant="determinate"
26+
value={progress}
27+
style={{ width: "100%" }}
28+
/>
29+
<div style={{ textAlign: "center", marginTop: "10px", fontSize: "14px" }}>
30+
Progress: {progress.toFixed(1)}%
31+
</div>
32+
</div>
33+
</div>
34+
);
35+
};

0 commit comments

Comments
 (0)