diff --git a/web/hooks/use-active-contracts.ts b/web/hooks/use-active-contracts.ts index d9bdb576..67bb8574 100644 --- a/web/hooks/use-active-contracts.ts +++ b/web/hooks/use-active-contracts.ts @@ -8,7 +8,9 @@ import { Comment, getRecentComments } from '../lib/firebase/comments' import { Contract, listAllContracts } from '../lib/firebase/contracts' import { listAllFolds } from '../lib/firebase/folds' import { findActiveContracts } from '../pages/activity' -import { useUpdatedContracts } from './use-contracts' +import { useRecentBets } from './use-bets' +import { useRecentComments } from './use-comments' +import { useContracts } from './use-contracts' import { useFollowedFolds } from './use-fold' import { useUserBetContracts } from './use-user-bets' @@ -36,7 +38,9 @@ export const useActiveContracts = ( }, user: User | undefined | null ) => { - const contracts = useUpdatedContracts(props.contracts) + const contracts = useContracts() ?? props.contracts + const recentBets = useRecentBets() ?? props.recentBets + const recentComments = useRecentComments() ?? props.recentComments const followedFoldIds = useFollowedFolds(user) @@ -71,8 +75,6 @@ export const useActiveContracts = ( ) } - const { recentComments, recentBets } = props - const activeContracts = findActiveContracts( feedContracts, recentComments, diff --git a/web/hooks/use-bets.ts b/web/hooks/use-bets.ts index 03a0cb49..5ea66e1c 100644 --- a/web/hooks/use-bets.ts +++ b/web/hooks/use-bets.ts @@ -1,6 +1,11 @@ import { useEffect, useState } from 'react' import { Contract } from '../../common/contract' -import { Bet, listenForBets, withoutAnteBets } from '../lib/firebase/bets' +import { + Bet, + listenForBets, + listenForRecentBets, + withoutAnteBets, +} from '../lib/firebase/bets' export const useBets = (contractId: string) => { const [bets, setBets] = useState() @@ -25,3 +30,9 @@ export const useBetsWithoutAntes = (contract: Contract, initialBets: Bet[]) => { return bets } + +export const useRecentBets = () => { + const [recentBets, setRecentBets] = useState() + useEffect(() => listenForRecentBets(setRecentBets), []) + return recentBets +} diff --git a/web/lib/firebase/bets.ts b/web/lib/firebase/bets.ts index 642c07c4..8c78540d 100644 --- a/web/lib/firebase/bets.ts +++ b/web/lib/firebase/bets.ts @@ -36,6 +36,10 @@ export async function getRecentBets() { return getValues(recentBetsQuery) } +export function listenForRecentBets(setBets: (bets: Bet[]) => void) { + return listenForValues(recentBetsQuery, setBets) +} + export async function getRecentContractBets(contractId: string) { const q = query( getBetsCollection(contractId),