import React, { useCallback, useState } from 'react'; import { View, Text } from 'react-native'; import type { NFTListing } from '../types/algorand'; import { formatCurrency } from '../utils/format'; import { SearchSheet } from '../ui/SearchSheet'; interface NFTSearchProps { data: NFTListing[]; onSelect?: (listing: NFTListing) => void; placeholder?: string; className?: string; } export function NFTSearch({ data, onSelect, placeholder = 'Search NFTs...', className, }: NFTSearchProps) { const [selected, setSelected] = useState(null); const handleSelect = useCallback( (listing: NFTListing) => { setSelected(listing); onSelect?.(listing); }, [onSelect], ); const renderItem = useCallback( (listing: NFTListing) => ( NFT {listing.nft.name} {listing.collection || `#${listing.nft.id}`} {formatCurrency(listing.price, listing.currency)} ), [], ); return ( {selected && ( Selected NFT {renderItem(selected)} )} ); }