Skip to content

Commit f12b0d8

Browse files
committed
limit the range of stocks that can be searched
1 parent 02735aa commit f12b0d8

File tree

2 files changed

+23
-5
lines changed

2 files changed

+23
-5
lines changed

frontend/src/app/home/components/stock-search-modal.tsx

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,25 @@ export default function StockSearchModal({ children }: StockSearchModalProps) {
8383
query: debouncedQuery,
8484
});
8585

86+
const filteredStockList = (stockList || []).filter((stock) => {
87+
const assetType = stock.asset_type?.toLowerCase();
88+
const exchange = (stock.exchange || "").toUpperCase();
89+
const prefix = (stock.ticker?.split(":")[0] || "").toUpperCase();
90+
91+
const US_EXCHANGES = new Set(["NASDAQ", "NYSE", "AMEX"]);
92+
const CN_EXCHANGES = new Set(["SSE", "SZSE", "HKEX"]);
93+
const JP_EXCHANGES = new Set(["TSE", "JPX", "TYO"]);
94+
95+
const isCrypto = assetType === "crypto" || prefix === "CRYPTO";
96+
const isUS = US_EXCHANGES.has(exchange) || US_EXCHANGES.has(prefix);
97+
const isCN = CN_EXCHANGES.has(exchange) || CN_EXCHANGES.has(prefix);
98+
const isJP = JP_EXCHANGES.has(exchange) || JP_EXCHANGES.has(prefix);
99+
100+
const isStock = assetType === "stock";
101+
102+
return isCrypto || (isStock && (isUS || isCN || isJP));
103+
});
104+
86105
return (
87106
<Dialog>
88107
<DialogTrigger asChild>{children}</DialogTrigger>
@@ -117,17 +136,17 @@ export default function StockSearchModal({ children }: StockSearchModalProps) {
117136
<p className="p-4 text-center text-neutral-400 text-sm">
118137
Searching...
119138
</p>
120-
) : stockList && stockList.length > 0 ? (
139+
) : filteredStockList && filteredStockList.length > 0 ? (
121140
<div className="rounded-lg bg-white py-2">
122-
{stockList.map((stock) => (
141+
{filteredStockList.map((stock) => (
123142
<StockItem key={stock.ticker} stock={stock} />
124143
))}
125144
</div>
126145
) : (
127146
query &&
128147
!isLoading &&
129148
stockList &&
130-
stockList.length === 0 && (
149+
filteredStockList.length === 0 && (
131150
<p className="p-4 text-center text-neutral-400 text-sm">
132151
No related stocks found
133152
</p>

frontend/src/app/home/components/tv-symbol-map.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,5 @@
77
"CRYPTO:ADA": "BINANCE:ADAUSDT",
88
"CRYPTO:DOGE": "BINANCE:DOGEUSDT",
99
"CRYPTO:USDT": "COINBASE:USDTUSD",
10-
"CRYPTO:USDC": "COINBASE:USDCUSD",
11-
"NYSE:USD": "AMEX:USD"
10+
"CRYPTO:USDC": "COINBASE:USDCUSD"
1211
}

0 commit comments

Comments
 (0)