Skip to content

Commit 231c9d9

Browse files
committed
Changed useInterval so it can be used as decorator.
1 parent 4b8b63e commit 231c9d9

File tree

1 file changed

+10
-4
lines changed

1 file changed

+10
-4
lines changed

transcrypt/demos/react_demo/react_demo.py

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,27 +15,33 @@ def render(react_element, destination_id, callback=lambda: None):
1515
useRef = React.useRef
1616

1717

18-
def useInterval(func, delay):
18+
def useInterval(func, delay=None):
19+
# can be used as `useInterval(func, delay)`
20+
# or as `@useInterval(delay)`
21+
if delay is None:
22+
delay = func
23+
return lambda fn: useInterval(fn, delay)
24+
1925
ref = useRef(func)
2026
ref.current = func
2127

2228
def setup():
2329
id = setInterval(lambda: ref.current(), delay)
24-
return lambda: cleanInterval(id)
30+
return lambda: clearInterval(id)
2531

2632
useEffect(setup, [delay])
33+
return func
2734

2835

2936
# Create a component
3037

3138
def Hello(props):
3239
count, setCount = useState(0)
3340

41+
@useInterval(1000)
3442
def updateCounter():
3543
setCount(count+1)
3644

37-
useInterval(updateCounter, 1000)
38-
3945
return h(
4046
'div',
4147
{'className': 'maindiv'},

0 commit comments

Comments
 (0)