diff --git a/web/lib/firebase/comments.ts b/web/lib/firebase/comments.ts
index 5b29bdfe..d272581e 100644
--- a/web/lib/firebase/comments.ts
+++ b/web/lib/firebase/comments.ts
@@ -5,7 +5,6 @@ import {
setDoc,
query,
collectionGroup,
- getDocs,
where,
orderBy,
} from 'firebase/firestore'
diff --git a/web/pages/activity.tsx b/web/pages/activity.tsx
index 0ec3b5ad..06337d95 100644
--- a/web/pages/activity.tsx
+++ b/web/pages/activity.tsx
@@ -2,8 +2,6 @@ import _ from 'lodash'
import { ContractFeed } from '../components/contract-feed'
import { Page } from '../components/page'
import { Title } from '../components/title'
-import { useRecentComments } from '../hooks/use-comments'
-import { useContracts } from '../hooks/use-contracts'
import { Contract } from '../lib/firebase/contracts'
import { Comment } from '../lib/firebase/comments'
import { Col } from '../components/layout/col'
@@ -68,22 +66,15 @@ export function ActivityFeed(props: {
contracts: Contract[]
contractBets: Bet[][]
contractComments: Comment[][]
- listenForChanges?: boolean
}) {
- const { contractBets, contractComments, listenForChanges } = props
- const contracts = useContracts() ?? props.contracts
- const recentComments = useRecentComments()
- const activeContracts =
- listenForChanges && recentComments
- ? findActiveContracts(contracts, recentComments)
- : props.contracts
+ const { contracts, contractBets, contractComments } = props
- return activeContracts.length > 0 ? (
+ return contracts.length > 0 ? (
- {activeContracts.map((contract, i) => (
+ {contracts.map((contract, i) => (
[])
-
const fold = await getFoldBySlug(foldSlug)
const contracts = fold ? await getFoldContracts(fold) : []
+ const contractComments = await Promise.all(
+ contracts.map((contract) => listAllComments(contract.id))
+ )
- const recentComments = await recentCommentsPromise
- const activeContracts = findActiveContracts(contracts, recentComments)
+ const activeContracts = findActiveContracts(
+ contracts,
+ _.flatten(contractComments)
+ )
const activeContractBets = await Promise.all(
activeContracts.map((contract) => listAllBets(contract.id))
)
- const activeContractComments = await Promise.all(
- activeContracts.map((contract) => listAllComments(contract.id))
+ const activeContractComments = activeContracts.map(
+ (contract) =>
+ contractComments[contracts.findIndex((c) => c.id === contract.id)]
)
return {
diff --git a/web/pages/index.tsx b/web/pages/index.tsx
index 77cba33f..313ad86a 100644
--- a/web/pages/index.tsx
+++ b/web/pages/index.tsx
@@ -17,6 +17,8 @@ import {
} from '../lib/firebase/comments'
import { Bet, listAllBets } from '../lib/firebase/bets'
import { ContractsGrid } from '../components/contracts-list'
+import { useContracts } from '../hooks/use-contracts'
+import { useRecentComments } from '../hooks/use-comments'
export async function getStaticProps() {
const [contracts, hotContracts, closingSoonContracts, recentComments] =
@@ -56,13 +58,18 @@ const Home = (props: {
closingSoonContracts: Contract[]
}) => {
const {
- activeContracts,
activeContractBets,
activeContractComments,
hotContracts,
closingSoonContracts,
} = props
+ const contracts = useContracts() ?? props.activeContracts
+ const recentComments = useRecentComments()
+ const activeContracts = recentComments
+ ? findActiveContracts(contracts, recentComments)
+ : props.activeContracts
+
return (
@@ -73,7 +80,6 @@ const Home = (props: {
contracts={activeContracts}
contractBets={activeContractBets}
contractComments={activeContractComments}
- listenForChanges
/>
)