Skip to content

Commit f47e2ce

Browse files
committed
demo: disable autostart, add "start" button
1 parent b8031de commit f47e2ce

File tree

1 file changed

+33
-14
lines changed

1 file changed

+33
-14
lines changed

example/LoaderDemo.tsx

+33-14
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,36 @@
1-
import { VStack, Container, Heading } from '@chakra-ui/core';
1+
import { VStack, Container, Heading, Button } from '@chakra-ui/core';
22
import * as React from 'react';
3-
import { useEffect } from 'react';
3+
import { useCallback, useEffect, useState } from 'react';
44
import { TimeSlider } from './components/TimeSlider';
55
import { Waveforms } from './components/Waveforms';
66
import { useWaveforms } from './hooks/useWaveforms';
77

88
export function LoaderDemo() {
9-
const [runAnimation, setRunAnimation] = React.useState(true);
10-
const [requestOffset, setRequestOffset] = React.useState(100);
11-
const [requestDuration, setRequestDuration] = React.useState(500);
12-
const [debounceDelay, setDebounceDelay] = React.useState(300);
13-
const [debounceTimeOn, setDebounceTimeOn] = React.useState(500);
9+
const [runAnimation, setRunAnimation] = useState(false);
10+
const [requestOffset, setRequestOffset] = useState(100);
11+
const [requestDuration, setRequestDuration] = useState(500);
12+
const [debounceDelay, setDebounceDelay] = useState(300);
13+
const [debounceTimeOn, setDebounceTimeOn] = useState(500);
14+
const [startClicked, setStartClicked] = useState(false);
1415

1516
const totalLength = 3000;
1617

1718
const {
1819
x,
1920
done,
2021
reset,
22+
23+
isLoading,
2124
originalOffset,
2225
originalLength,
2326

27+
debouncedIsLoading,
2428
debouncedOffset,
2529
debouncedLength,
2630

31+
debouncedIsLoading2,
2732
debouncedOffset2,
2833
debouncedLength2,
29-
30-
isLoading,
31-
debouncedIsLoading,
32-
debouncedIsLoading2,
3334
} = useWaveforms({
3435
scanMode: runAnimation,
3536
requestOffset: requestOffset,
@@ -39,11 +40,25 @@ export function LoaderDemo() {
3940
totalLength: totalLength,
4041
});
4142

42-
useEffect(() => {
43+
const start = useCallback(() => {
44+
setStartClicked(true);
4345
reset();
44-
4546
setRunAnimation(true);
46-
}, [requestOffset, requestDuration, debounceDelay, debounceTimeOn, reset]);
47+
}, [reset]);
48+
49+
useEffect(() => {
50+
if (startClicked) {
51+
start();
52+
}
53+
}, [
54+
requestOffset,
55+
requestDuration,
56+
debounceDelay,
57+
debounceTimeOn,
58+
reset,
59+
start,
60+
startClicked,
61+
]);
4762

4863
useEffect(() => {
4964
if (done) {
@@ -84,6 +99,10 @@ export function LoaderDemo() {
8499
onValueChange={setDebounceTimeOn}
85100
/>
86101

102+
<Button size="lg" onClick={start} disabled={runAnimation}>
103+
Start
104+
</Button>
105+
87106
<Waveforms
88107
totalLength={totalLength}
89108
x={x}

0 commit comments

Comments
 (0)