Commit 28ce82d 1 parent e5030ad commit 28ce82d Copy full SHA for 28ce82d
File tree 2 files changed +46
-12
lines changed
docs/data/material/components/progress
2 files changed +46
-12
lines changed Original file line number Diff line number Diff line change @@ -6,25 +6,42 @@ export default function LinearBuffer() {
6
6
const [ progress , setProgress ] = React . useState ( 0 ) ;
7
7
const [ buffer , setBuffer ] = React . useState ( 10 ) ;
8
8
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
+
9
19
const progressRef = React . useRef ( ( ) => { } ) ;
10
20
React . useEffect ( ( ) => {
11
21
progressRef . current = ( ) => {
12
- if ( progress > 100 ) {
22
+ if ( progress === 100 ) {
13
23
setProgress ( 0 ) ;
14
24
setBuffer ( 10 ) ;
15
25
} 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 ) ;
20
27
}
21
28
} ;
22
29
} ) ;
23
30
31
+ React . useEffect ( ( ) => {
32
+ const timer = setInterval ( ( ) => {
33
+ bufferRef . current ( ) ;
34
+ } , 500 ) ;
35
+
36
+ return ( ) => {
37
+ clearInterval ( timer ) ;
38
+ } ;
39
+ } , [ ] ) ;
40
+
24
41
React . useEffect ( ( ) => {
25
42
const timer = setInterval ( ( ) => {
26
43
progressRef . current ( ) ;
27
- } , 500 ) ;
44
+ } , 100 ) ;
28
45
29
46
return ( ) => {
30
47
clearInterval ( timer ) ;
Original file line number Diff line number Diff line change @@ -6,25 +6,42 @@ export default function LinearBuffer() {
6
6
const [ progress , setProgress ] = React . useState ( 0 ) ;
7
7
const [ buffer , setBuffer ] = React . useState ( 10 ) ;
8
8
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
+
9
19
const progressRef = React . useRef ( ( ) => { } ) ;
10
20
React . useEffect ( ( ) => {
11
21
progressRef . current = ( ) => {
12
- if ( progress > 100 ) {
22
+ if ( progress === 100 ) {
13
23
setProgress ( 0 ) ;
14
24
setBuffer ( 10 ) ;
15
25
} 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 ) ;
20
27
}
21
28
} ;
22
29
} ) ;
30
+
31
+ React . useEffect ( ( ) => {
32
+ const timer = setInterval ( ( ) => {
33
+ bufferRef . current ( ) ;
34
+ } , 500 ) ;
35
+
36
+ return ( ) => {
37
+ clearInterval ( timer ) ;
38
+ } ;
39
+ } , [ ] ) ;
23
40
24
41
React . useEffect ( ( ) => {
25
42
const timer = setInterval ( ( ) => {
26
43
progressRef . current ( ) ;
27
- } , 500 ) ;
44
+ } , 100 ) ;
28
45
29
46
return ( ) => {
30
47
clearInterval ( timer ) ;
You can’t perform that action at this time.
0 commit comments