import React, { useState, useEffect } from 'react'; import axios from 'axios'; import { motion } from 'framer-motion'; const CalloutModal = ({ isOpen, onClose, onSubmit }) => { const [tokenId, setTokenId] = useState(''); const [searchResults, setSearchResults] = useState([]); const [showDropdown, setShowDropdown] = useState(false); useEffect(() => { if (tokenId) { const fetchData = async () => { try { const response = await axios.get(`https://api.dexscreener.io/latest/dex/search/?q=${tokenId}`); setSearchResults(response.data.pairs || []); setShowDropdown(true); } catch (error) { console.error('Error fetching data:', error); setShowDropdown(false); } }; fetchData(); } else { setShowDropdown(false); } }, [tokenId]); const handleTokenChange = (e) => { setTokenId(e.target.value); }; const handleSelectToken = (token) => { setTokenId(token); setShowDropdown(false); }; const handleSubmit = () => { onSubmit(tokenId); onClose(); }; return isOpen ? (

Make a new call!

Type in a tokens short code, that you will think boom anytime soon

{showDropdown && (
    {searchResults.map((result) => (
  • handleSelectToken(result.baseToken.symbol)} className="p-2 hover:bg-gray-400 cursor-pointer flex justify-between items-center glassmorphism-scroller" >
    {result.baseToken.symbol} - {result.baseToken.name} {result.chain}
    24H Vol: ${result.volume.h24.toLocaleString()} 0x...{result.baseToken.address.slice(-4)}
    ${result.priceUsd}
  • ))}
)}
) : null; }; export default CalloutModal;