24 lines
785 B
JavaScript
24 lines
785 B
JavaScript
|
// @flow
|
||
|
import React from 'react';
|
||
|
import { LIVESTREAM_STATUS_CHECK_INTERVAL_SOON, LIVESTREAM_STATUS_CHECK_INTERVAL } from 'constants/livestream';
|
||
|
|
||
|
export default function useFetchLiveStatus(
|
||
|
channelClaimId: ?string,
|
||
|
doFetchChannelLiveStatus: (string) => void,
|
||
|
fasterPoll?: boolean
|
||
|
) {
|
||
|
// Find out current channels status + active live claim every 30 seconds
|
||
|
React.useEffect(() => {
|
||
|
if (!channelClaimId) return;
|
||
|
|
||
|
const fetch = () => doFetchChannelLiveStatus(channelClaimId || '');
|
||
|
const interval = fasterPoll ? LIVESTREAM_STATUS_CHECK_INTERVAL_SOON : LIVESTREAM_STATUS_CHECK_INTERVAL;
|
||
|
|
||
|
fetch();
|
||
|
|
||
|
const intervalId = setInterval(fetch, interval);
|
||
|
|
||
|
return () => clearInterval(intervalId);
|
||
|
}, [channelClaimId, doFetchChannelLiveStatus, fasterPoll]);
|
||
|
}
|