From a7e3414cc918e9e0a5781de6b4df1484f0b08d08 Mon Sep 17 00:00:00 2001 From: James Grugett Date: Wed, 14 Sep 2022 00:10:32 -0500 Subject: [PATCH] Add search row --- web/components/contract-search.tsx | 6 ++++++ web/pages/experimental/home/index.tsx | 23 +++++++++++++++++++++-- web/pages/search.tsx | 5 +++++ 3 files changed, 32 insertions(+), 2 deletions(-) diff --git a/web/components/contract-search.tsx b/web/components/contract-search.tsx index 422ef920..b38ffe47 100644 --- a/web/components/contract-search.tsx +++ b/web/components/contract-search.tsx @@ -91,6 +91,7 @@ export function ContractSearch(props: { contracts: Contract[] | undefined, loadMore: () => void ) => ReactNode + autoFocus?: boolean }) { const { user, @@ -109,6 +110,7 @@ export function ContractSearch(props: { noControls, maxResults, renderContracts, + autoFocus, } = props const [state, setState] = usePersistentState( @@ -210,6 +212,7 @@ export function ContractSearch(props: { user={user} onSearchParametersChanged={onSearchParametersChanged} noControls={noControls} + autoFocus={autoFocus} /> {renderContracts ? ( renderContracts(renderedContracts, performQuery) @@ -238,6 +241,7 @@ function ContractSearchControls(props: { useQueryUrlParam?: boolean user?: User | null noControls?: boolean + autoFocus?: boolean }) { const { className, @@ -250,6 +254,7 @@ function ContractSearchControls(props: { useQueryUrlParam, user, noControls, + autoFocus, } = props const router = useRouter() @@ -399,6 +404,7 @@ function ContractSearchControls(props: { onBlur={trackCallback('search', { query: query })} placeholder={'Search'} className="input input-bordered w-full" + autoFocus={autoFocus} /> {!query && ( + + + ) +} + function DailyProfitAndBalance(props: { user: User | null | undefined className?: string diff --git a/web/pages/search.tsx b/web/pages/search.tsx index 011f8c2e..03ef5c52 100644 --- a/web/pages/search.tsx +++ b/web/pages/search.tsx @@ -4,6 +4,7 @@ import { ContractSearch } from 'web/components/contract-search' import { useTracking } from 'web/hooks/use-tracking' import { useUser } from 'web/hooks/use-user' import { usePrefetch } from 'web/hooks/use-prefetch' +import { useRouter } from 'next/router' export default function Search() { const user = useUser() @@ -11,6 +12,9 @@ export default function Search() { useTracking('view search') + const { query } = useRouter() + const autoFocus = !(query['q'] || query['s'] || query['p']) + return ( @@ -18,6 +22,7 @@ export default function Search() { user={user} persistPrefix="search" useQueryUrlParam={true} + autoFocus={autoFocus} />