Skip to content

Commit 28ce82d

Browse files
committed
[docs][LinearBuffer] Fix demo
1 parent e5030ad commit 28ce82d

File tree

2 files changed

+46
-12
lines changed

2 files changed

+46
-12
lines changed

docs/data/material/components/progress/LinearBuffer.js

+23-6
Original file line numberDiff line numberDiff line change
@@ -6,25 +6,42 @@ export default function LinearBuffer() {
66
const [progress, setProgress] = React.useState(0);
77
const [buffer, setBuffer] = React.useState(10);
88

9+
const bufferRef = React.useRef(() => {});
10+
React.useEffect(() => {
11+
bufferRef.current = () => {
12+
if (buffer < 100) {
13+
const newBuffer = buffer + 1 + Math.random() * 10;
14+
setBuffer(newBuffer > 100 ? 100 : newBuffer);
15+
}
16+
};
17+
});
18+
919
const progressRef = React.useRef(() => {});
1020
React.useEffect(() => {
1121
progressRef.current = () => {
12-
if (progress > 100) {
22+
if (progress === 100) {
1323
setProgress(0);
1424
setBuffer(10);
1525
} else {
16-
const diff = Math.random() * 10;
17-
const diff2 = Math.random() * 10;
18-
setProgress(progress + diff);
19-
setBuffer(progress + diff + diff2);
26+
setProgress(progress + 1);
2027
}
2128
};
2229
});
2330

31+
React.useEffect(() => {
32+
const timer = setInterval(() => {
33+
bufferRef.current();
34+
}, 500);
35+
36+
return () => {
37+
clearInterval(timer);
38+
};
39+
}, []);
40+
2441
React.useEffect(() => {
2542
const timer = setInterval(() => {
2643
progressRef.current();
27-
}, 500);
44+
}, 100);
2845

2946
return () => {
3047
clearInterval(timer);

docs/data/material/components/progress/LinearBuffer.tsx

+23-6
Original file line numberDiff line numberDiff line change
@@ -6,25 +6,42 @@ export default function LinearBuffer() {
66
const [progress, setProgress] = React.useState(0);
77
const [buffer, setBuffer] = React.useState(10);
88

9+
const bufferRef = React.useRef(() => {});
10+
React.useEffect(() => {
11+
bufferRef.current = () => {
12+
if (buffer < 100) {
13+
const newBuffer = buffer + 1 + Math.random() * 10;
14+
setBuffer(newBuffer > 100 ? 100 : newBuffer);
15+
}
16+
};
17+
});
18+
919
const progressRef = React.useRef(() => {});
1020
React.useEffect(() => {
1121
progressRef.current = () => {
12-
if (progress > 100) {
22+
if (progress === 100) {
1323
setProgress(0);
1424
setBuffer(10);
1525
} else {
16-
const diff = Math.random() * 10;
17-
const diff2 = Math.random() * 10;
18-
setProgress(progress + diff);
19-
setBuffer(progress + diff + diff2);
26+
setProgress(progress + 1);
2027
}
2128
};
2229
});
30+
31+
React.useEffect(() => {
32+
const timer = setInterval(() => {
33+
bufferRef.current();
34+
}, 500);
35+
36+
return () => {
37+
clearInterval(timer);
38+
};
39+
}, []);
2340

2441
React.useEffect(() => {
2542
const timer = setInterval(() => {
2643
progressRef.current();
27-
}, 500);
44+
}, 100);
2845

2946
return () => {
3047
clearInterval(timer);

0 commit comments

Comments
 (0)