From 273933fe1bd392a6f8dd4ede80f5e931f1a4213b Mon Sep 17 00:00:00 2001 From: chambaz Date: Wed, 18 Dec 2024 23:14:12 -0500 Subject: [PATCH 1/2] fix: use search pool summary and get search results back, still not clickable (wip) --- .../common/Pool/PoolSearch/PoolSearch.tsx | 14 +++++++------- .../PoolSearch/components/PoolSearchDefault.tsx | 6 +++--- .../PoolSearch/components/PoolSearchDialog.tsx | 6 +++--- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/apps/marginfi-v2-trading/src/components/common/Pool/PoolSearch/PoolSearch.tsx b/apps/marginfi-v2-trading/src/components/common/Pool/PoolSearch/PoolSearch.tsx index 75a5d12f2f..0e1ef65a52 100644 --- a/apps/marginfi-v2-trading/src/components/common/Pool/PoolSearch/PoolSearch.tsx +++ b/apps/marginfi-v2-trading/src/components/common/Pool/PoolSearch/PoolSearch.tsx @@ -28,9 +28,9 @@ export const PoolSearch = ({ showNoResults = true, }: PoolSearchProps) => { const router = useRouter(); - const [searchPools, searchPoolResults, resetSearchResults, arenaPools] = useTradeStoreV2((state) => [ - state.searchPools, - state.searchPoolResults, + const [searchSummaryPools, searchPoolSummaryResults, resetSearchResults, arenaPools] = useTradeStoreV2((state) => [ + state.searchSummaryPools, + state.searchPoolSummaryResults, state.resetSearchResults, state.arenaPools, ]); @@ -47,8 +47,8 @@ export const PoolSearch = ({ resetSearchResults(); return; } - searchPools(debouncedSearchQuery); - }, [debouncedSearchQuery, searchPools, resetSearchResults]); + searchSummaryPools(debouncedSearchQuery); + }, [debouncedSearchQuery, searchSummaryPools, resetSearchResults]); const resetSearch = React.useCallback(() => { resetSearchResults(); @@ -62,7 +62,7 @@ export const PoolSearch = ({ searchQuery={searchQuery} setSearchQuery={setSearchQuery} resetSearch={resetSearch} - searchResults={searchPoolResults} + searchResults={searchPoolSummaryResults} size={size} additionalContent={additionalContent} additionalContentQueryMin={additionalContentQueryMin} @@ -82,7 +82,7 @@ export const PoolSearch = ({ searchQuery={searchQuery} setSearchQuery={setSearchQuery} resetSearch={resetSearch} - searchResults={searchPoolResults} + searchResults={searchPoolSummaryResults} additionalContent={additionalContent} additionalContentQueryMin={additionalContentQueryMin} showNoResults={showNoResults} diff --git a/apps/marginfi-v2-trading/src/components/common/Pool/PoolSearch/components/PoolSearchDefault.tsx b/apps/marginfi-v2-trading/src/components/common/Pool/PoolSearch/components/PoolSearchDefault.tsx index a4edaa245e..f21ba31532 100644 --- a/apps/marginfi-v2-trading/src/components/common/Pool/PoolSearch/components/PoolSearchDefault.tsx +++ b/apps/marginfi-v2-trading/src/components/common/Pool/PoolSearch/components/PoolSearchDefault.tsx @@ -9,14 +9,14 @@ import { IconCommand, IconX } from "@tabler/icons-react"; import { Command, CommandEmpty, CommandGroup, CommandInput, CommandItem } from "~/components/ui/command"; import { Button } from "~/components/ui/button"; -import { ArenaPoolV2 } from "~/types/trade-store.types"; +import { ArenaPoolSummary, ArenaPoolV2 } from "~/types/trade-store.types"; import { useTradeStoreV2 } from "~/store"; type PoolSearchDefaultProps = { searchQuery: string; setSearchQuery: (query: string) => void; resetSearch: () => void; - searchResults: FuseResult[]; + searchResults: FuseResult[]; size: "sm" | "lg"; additionalContent: React.ReactNode; additionalContentQueryMin: number; @@ -114,7 +114,7 @@ export const PoolSearchDefault = ({ {searchResults.slice(0, maxResults).map((result) => { const pool = result.item; const address = pool.groupPk.toBase58(); - const tokenBank = banksByBankPk[pool.tokenBankPk.toBase58()]; + const tokenBank = banksByBankPk[pool.tokenSummary.bankPk.toBase58()]; return ( void; resetSearch: () => void; - searchResults: FuseResult[]; + searchResults: FuseResult[]; additionalContent: React.ReactNode; additionalContentQueryMin: number; showNoResults: boolean; @@ -69,7 +69,7 @@ export const PoolSearchDialog = ({ {searchResults.slice(0, maxResults).map((result) => { const pool = result.item; const address = pool.groupPk.toBase58(); - const tokenBank = banksByBankPk[pool.tokenBankPk.toBase58()]; + const tokenBank = banksByBankPk[pool.tokenSummary.bankPk.toBase58()]; return ( From fe61c67611d763c41869c82b76d0d1f6b3ba844b Mon Sep 17 00:00:00 2001 From: chambaz Date: Thu, 19 Dec 2024 10:17:04 -0500 Subject: [PATCH 2/2] fix: desktop / mobile search select callback --- .../components/common/Pool/PoolSearch/PoolSearch.tsx | 10 ++++++++-- .../Pool/PoolSearch/components/PoolSearchDefault.tsx | 9 ++++++--- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/apps/marginfi-v2-trading/src/components/common/Pool/PoolSearch/PoolSearch.tsx b/apps/marginfi-v2-trading/src/components/common/Pool/PoolSearch/PoolSearch.tsx index 0e1ef65a52..10670298ca 100644 --- a/apps/marginfi-v2-trading/src/components/common/Pool/PoolSearch/PoolSearch.tsx +++ b/apps/marginfi-v2-trading/src/components/common/Pool/PoolSearch/PoolSearch.tsx @@ -68,7 +68,10 @@ export const PoolSearch = ({ additionalContentQueryMin={additionalContentQueryMin} showNoResults={showNoResults} onBankSelect={(value) => { - const foundGroup = arenaPools[value]; + const foundGroup = Object.entries(arenaPools).find( + ([key]) => key.toLowerCase() === value.toLowerCase() + )?.[1]; + if (!foundGroup) return; router.push(`/trade/${foundGroup.groupPk.toBase58()}`); @@ -87,7 +90,10 @@ export const PoolSearch = ({ additionalContentQueryMin={additionalContentQueryMin} showNoResults={showNoResults} onBankSelect={(value) => { - const foundGroup = arenaPools[value]; + const foundGroup = Object.entries(arenaPools).find( + ([key]) => key.toLowerCase() === value.toLowerCase() + )?.[1]; + if (!foundGroup) return; router.push(`/trade/${foundGroup.groupPk.toBase58()}`); diff --git a/apps/marginfi-v2-trading/src/components/common/Pool/PoolSearch/components/PoolSearchDefault.tsx b/apps/marginfi-v2-trading/src/components/common/Pool/PoolSearch/components/PoolSearchDefault.tsx index f21ba31532..20bb5f39ee 100644 --- a/apps/marginfi-v2-trading/src/components/common/Pool/PoolSearch/components/PoolSearchDefault.tsx +++ b/apps/marginfi-v2-trading/src/components/common/Pool/PoolSearch/components/PoolSearchDefault.tsx @@ -108,8 +108,8 @@ export const PoolSearchDefault = ({ K -
- {searchResults.length > 0 && ( +
+ {searchResults.length > 0 && searchQuery.length > 0 && ( {searchResults.slice(0, maxResults).map((result) => { const pool = result.item; @@ -120,7 +120,10 @@ export const PoolSearchDefault = ({