// @flow import * as REACTION_TYPES from 'constants/reactions'; import * as ICONS from 'constants/icons'; import React from 'react'; import classnames from 'classnames'; import Button from 'component/button'; import { formatNumberWithCommas } from 'util/number'; import NudgeFloating from 'component/nudgeFloating'; type Props = { claim: StreamClaim, doFetchReactions: (string) => void, doReactionLike: (string) => void, doReactionDislike: (string) => void, uri: string, likeCount: number, dislikeCount: number, myReaction: ?string, livestream?: boolean, }; function FileReactions(props: Props) { const { claim, uri, doFetchReactions, doReactionLike, doReactionDislike, myReaction, likeCount, dislikeCount, livestream, } = props; const claimId = claim && claim.claim_id; const channel = claim && claim.signing_channel && claim.signing_channel.name; React.useEffect(() => { function fetchReactions() { doFetchReactions(claimId); } let fetchInterval; if (claimId) { fetchReactions(); if (livestream) { fetchInterval = setInterval(fetchReactions, 10000); } } return () => { if (fetchInterval) { clearInterval(fetchInterval); } }; }, [claimId, doFetchReactions, livestream]); return ( <> {channel && ( )}