-
+
)
}
diff --git a/web/pages/index.tsx b/web/pages/index.tsx
index 313ad86a..40c68f68 100644
--- a/web/pages/index.tsx
+++ b/web/pages/index.tsx
@@ -2,13 +2,10 @@ import React from 'react'
import _ from 'lodash'
import {
Contract,
- getClosingSoonContracts,
getHotContracts,
listAllContracts,
} from '../lib/firebase/contracts'
-import { Spacer } from '../components/layout/spacer'
import { Page } from '../components/page'
-import { Title } from '../components/title'
import { ActivityFeed, findActiveContracts } from './activity'
import {
getRecentComments,
@@ -16,18 +13,19 @@ import {
listAllComments,
} 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'
+import FeedCreate, { FeedPromo } from '../components/feed-create'
+import { Spacer } from '../components/layout/spacer'
+import { Col } from '../components/layout/col'
+import { useUser } from '../hooks/use-user'
export async function getStaticProps() {
- const [contracts, hotContracts, closingSoonContracts, recentComments] =
- await Promise.all([
- listAllContracts().catch((_) => []),
- getHotContracts().catch(() => []),
- getClosingSoonContracts().catch(() => []),
- getRecentComments().catch(() => []),
- ])
+ const [contracts, recentComments, hotContracts] = await Promise.all([
+ listAllContracts().catch((_) => []),
+ getRecentComments().catch(() => []),
+ getHotContracts().catch(() => []),
+ ])
const activeContracts = findActiveContracts(contracts, recentComments)
const activeContractBets = await Promise.all(
@@ -43,7 +41,6 @@ export async function getStaticProps() {
activeContractBets,
activeContractComments,
hotContracts,
- closingSoonContracts,
},
revalidate: 60, // regenerate after a minute
@@ -55,14 +52,8 @@ const Home = (props: {
activeContractBets: Bet[][]
activeContractComments: Comment[][]
hotContracts: Contract[]
- closingSoonContracts: Contract[]
}) => {
- const {
- activeContractBets,
- activeContractComments,
- hotContracts,
- closingSoonContracts,
- } = props
+ const { activeContractBets, activeContractComments, hotContracts } = props
const contracts = useContracts() ?? props.activeContracts
const recentComments = useRecentComments()
@@ -70,43 +61,29 @@ const Home = (props: {
? findActiveContracts(contracts, recentComments)
: props.activeContracts
+ const user = useUser()
+
return (
-
-
-
-
-
+
+
+
+ {user ? (
+
+ ) : (
+
+ )}
+
+
+
+
+
)
}
-const HotMarkets = (props: { contracts: Contract[] }) => {
- const { contracts } = props
- if (contracts.length === 0) return <>>
-
- return (
-
-
-
-
- )
-}
-
-const ClosingSoonMarkets = (props: { contracts: Contract[] }) => {
- const { contracts } = props
- if (contracts.length === 0) return <>>
-
- return (
-
-
-
-
- )
-}
-
export default Home
diff --git a/web/pages/markets.tsx b/web/pages/markets.tsx
index a5fdd818..64531b79 100644
--- a/web/pages/markets.tsx
+++ b/web/pages/markets.tsx
@@ -1,25 +1,44 @@
import _ from 'lodash'
-import { SearchableGrid } from '../components/contracts-list'
+import { ContractsGrid, SearchableGrid } from '../components/contracts-list'
+import { Spacer } from '../components/layout/spacer'
import { Page } from '../components/page'
import { SEO } from '../components/SEO'
+import { Title } from '../components/title'
import { useContracts } from '../hooks/use-contracts'
import { useQueryAndSortParams } from '../hooks/use-sort-and-query-params'
-import { Contract, listAllContracts } from '../lib/firebase/contracts'
+import {
+ Contract,
+ getClosingSoonContracts,
+ getHotContracts,
+ listAllContracts,
+} from '../lib/firebase/contracts'
export async function getStaticProps() {
- const contracts = await listAllContracts().catch((_) => {})
+ const [contracts, hotContracts, closingSoonContracts] = await Promise.all([
+ listAllContracts().catch((_) => []),
+ getHotContracts().catch(() => []),
+ getClosingSoonContracts().catch(() => []),
+ ])
return {
props: {
contracts,
+ hotContracts,
+ closingSoonContracts,
},
revalidate: 60, // regenerate after a minute
}
}
-export default function Markets(props: { contracts: Contract[] }) {
+// TODO: Rename endpoint to "Explore"
+export default function Markets(props: {
+ contracts: Contract[]
+ hotContracts: Contract[]
+ closingSoonContracts: Contract[]
+}) {
const contracts = useContracts() ?? props.contracts
+ const { hotContracts, closingSoonContracts } = props
const { query, setQuery, sort, setSort } = useQueryAndSortParams()
return (
@@ -29,6 +48,11 @@ export default function Markets(props: { contracts: Contract[] }) {
description="Discover what's new, trending, or soon-to-close. Or search among our hundreds of markets."
url="/markets"
/>
+
+
+
+
+
)
}
+
+const HotMarkets = (props: { contracts: Contract[] }) => {
+ const { contracts } = props
+ if (contracts.length === 0) return <>>
+
+ return (
+
+
+
+
+ )
+}
+
+const ClosingSoonMarkets = (props: { contracts: Contract[] }) => {
+ const { contracts } = props
+ if (contracts.length === 0) return <>>
+
+ return (
+
+
+
+
+ )
+}