Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 1b14ae3492 | |||
| 4e762f762d |
@@ -13,6 +13,7 @@ import NavbarLayoutFloatingOverlay from '@/components/navbar/NavbarLayoutFloatin
|
||||
import SocialProofOne from '@/components/sections/socialProof/SocialProofOne';
|
||||
import TestimonialCardTwelve from '@/components/sections/testimonial/TestimonialCardTwelve';
|
||||
import Input from '@/components/form/Input';
|
||||
import { AlertCircle, Loader2 } from "lucide-react";
|
||||
|
||||
export default function LandingPage() {
|
||||
const [searchQuery, setSearchQuery] = useState("");
|
||||
@@ -21,6 +22,7 @@ export default function LandingPage() {
|
||||
const [error, setError] = useState(null);
|
||||
|
||||
const handleSearch = useCallback(async () => {
|
||||
if (!searchQuery.trim()) return;
|
||||
setLoading(true);
|
||||
setError(null);
|
||||
try {
|
||||
@@ -53,9 +55,8 @@ export default function LandingPage() {
|
||||
<NavbarLayoutFloatingOverlay
|
||||
navItems={[
|
||||
{ name: "How it works", id: "#features" },
|
||||
{ name: "Pricing", id: "#pricing" },
|
||||
{ name: "Agents", id: "#metrics" },
|
||||
{ name: "Blog", id: "#blog" },
|
||||
{ name: "FAQ", id: "#faq" },
|
||||
]}
|
||||
brandName="No-Site Search"
|
||||
/>
|
||||
@@ -66,22 +67,32 @@ export default function LandingPage() {
|
||||
background={{ variant: "plain" }}
|
||||
title="Find local businesses without websites"
|
||||
description="Find local businesses without websites and deploy AI agents to fill your pipeline — automatically."
|
||||
buttons={[{ text: "Get Started", href: "#pricing" }]}
|
||||
buttons={[{ text: "Get Started", href: "#contact" }]}
|
||||
imageSrc="http://img.b2bpic.net/free-photo/employee-uses-phone-app-with-greenscreen_482257-81843.jpg"
|
||||
imageAlt="Dashboard showing business leads"
|
||||
/>
|
||||
<div className="px-6 py-8 flex flex-col items-center gap-4">
|
||||
<div className="flex w-full max-w-md gap-2">
|
||||
<div className="px-6 py-12 flex flex-col items-center gap-4 w-full max-w-4xl mx-auto">
|
||||
<div className="flex w-full max-w-md gap-2 p-2 bg-white/50 dark:bg-black/20 backdrop-blur rounded-lg border border-white/20 shadow-xl">
|
||||
<Input
|
||||
value={searchQuery}
|
||||
onChange={setSearchQuery}
|
||||
placeholder="Search for leads..."
|
||||
placeholder="Search for leads (e.g. 'plumbers in NY')..."
|
||||
className="flex-1 bg-transparent border-none focus:ring-0"
|
||||
/>
|
||||
<button onClick={handleSearch} className="px-4 py-2 bg-primary text-white rounded" disabled={loading}>
|
||||
{loading ? "Searching..." : "Search"}
|
||||
<button
|
||||
onClick={handleSearch}
|
||||
className="flex items-center gap-2 px-6 py-3 bg-primary text-white rounded-md hover:opacity-90 transition-all disabled:opacity-50"
|
||||
disabled={loading}
|
||||
>
|
||||
{loading ? <Loader2 className="w-4 h-4 animate-spin" /> : "Search"}
|
||||
</button>
|
||||
</div>
|
||||
{error && <p className="text-red-500 text-sm">{error}</p>}
|
||||
{error && (
|
||||
<div className="flex items-center gap-2 text-red-500 bg-red-50 px-4 py-2 rounded-md animate-in fade-in">
|
||||
<AlertCircle className="w-4 h-4" />
|
||||
<span className="text-sm">{error}</span>
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -164,7 +175,8 @@ export default function LandingPage() {
|
||||
<FooterBaseReveal
|
||||
logoText="No-Site Search"
|
||||
columns={[
|
||||
{ title: "Company", items: [{ label: "How it works", href: "#features" }, { label: "Pricing", href: "#pricing" }] },
|
||||
{ title: "Product", items: [{ label: "Features", href: "#features" }, { label: "Metrics", href: "#metrics" }] },
|
||||
{ title: "Support", items: [{ label: "FAQ", href: "#faq" }, { label: "Contact", href: "#contact" }] },
|
||||
]}
|
||||
copyrightText="Copyright © 2026 No-Site Search. All rights reserved."
|
||||
/>
|
||||
|
||||
Reference in New Issue
Block a user