diff --git a/components/SearchOnTop.tsx b/components/SearchOnTop.tsx index 1206150..cc270a1 100644 --- a/components/SearchOnTop.tsx +++ b/components/SearchOnTop.tsx @@ -1,15 +1,20 @@ 'use client'; import React, { useState } from 'react'; -import { useRouter } from "next/navigation"; +import { useRouter, usePathname } from "next/navigation"; import { FaSearch, FaMapPin, FaSun, FaEthereum } from 'react-icons/fa'; import { LoadingScreen } from "@/components/loading-screen"; const SearchOnTop = () => { + const pathname = usePathname(); const [searchQuery, setSearchQuery] = useState(''); const [isLoading, setIsLoading] = useState(false); const [searchType, setSearchType] = useState<"onchain" | "offchain">("onchain"); const router = useRouter(); + if (pathname === "/") { + return null; + } + const handleSearch = async (event: React.FormEvent) => { event.preventDefault(); if (!searchQuery.trim()) return; diff --git a/components/home/CryptoExplorer.tsx b/components/home/CryptoExplorer.tsx index 8fce486..77a51bf 100644 --- a/components/home/CryptoExplorer.tsx +++ b/components/home/CryptoExplorer.tsx @@ -1,5 +1,7 @@ +'use client' import React, { useState, useEffect } from 'react'; -import { useRouter } from "next/navigation" +import { useRouter } from "next/navigation"; +import { LoadingScreen } from "@/components/loading-screen"; const CryptoPathExplorer = ({ language = 'en' as 'en' | 'vi' }) => { const [searchValue, setSearchValue] = useState(''); @@ -10,7 +12,7 @@ const CryptoPathExplorer = ({ language = 'en' as 'en' | 'vi' }) => { const [isFilterOpen, setIsFilterOpen] = useState(false); const [selectedFilter, setSelectedFilter] = useState('All Filters'); const router = useRouter() - + const [isLoading, setIsLoading] = useState(false); const filters = ['All Filters', 'On-Chain', 'Off-Chain', 'Tokens', 'NFTs', 'Addresses']; const translations = { @@ -67,9 +69,23 @@ const CryptoPathExplorer = ({ language = 'en' as 'en' | 'vi' }) => { fetchData(); }, []); - const handleSearch = (e: React.FormEvent) => { + const handleSearch = async (e: React.FormEvent) => { e.preventDefault(); -// Nho minh duy phan nay + if (!searchValue.trim()) return; + + setIsLoading(true); + try { + await new Promise((resolve) => setTimeout(resolve, 2500)); // Simulated delay + if (selectedFilter === "On-Chain") { + router.push(`/search/?address=${encodeURIComponent(searchValue)}&network=mainnet`); + } else if (selectedFilter === "Off-Chain") { + router.push(`/search-offchain/?address=${encodeURIComponent(searchValue)}`); + } + } catch (error) { + console.error("Search error:", error); + } finally { + setIsLoading(false); + } }; const toggleFilterDropdown = () => { @@ -82,6 +98,7 @@ const CryptoPathExplorer = ({ language = 'en' as 'en' | 'vi' }) => { }; return ( + <>
{/* Explorer Title */}
@@ -241,6 +258,8 @@ const CryptoPathExplorer = ({ language = 'en' as 'en' | 'vi' }) => {
+ + ); };