diff --git a/app/callout.tsx b/app/callout.tsx
index 28dc924..330d3ce 100644
--- a/app/callout.tsx
+++ b/app/callout.tsx
@@ -1,13 +1,39 @@
-import React, { useState } from 'react';
+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();
@@ -20,27 +46,52 @@ const CalloutModal = ({ isOpen, onClose, onSubmit }) => {
exit={{ opacity: 0 }}
className="fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50 modal-bg"
>
-
-
+
-
Make a new call!
-
-
+ 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}
+
+
+ ))}
+
+ )}
+