2026-01-11 22:09:41 +05:30
|
|
|
'use client';
|
|
|
|
|
|
|
|
|
|
import { useState } from 'react';
|
|
|
|
|
import Link from 'next/link';
|
2026-01-20 01:41:09 +05:30
|
|
|
import Image from 'next/image';
|
2026-01-11 22:09:41 +05:30
|
|
|
|
|
|
|
|
// Sample agents data for tabs
|
|
|
|
|
const agentsData = [
|
|
|
|
|
{
|
|
|
|
|
id: '1',
|
|
|
|
|
name: 'Arjun Mehta',
|
2026-01-20 01:41:09 +05:30
|
|
|
subtitle: '(Residential Property Expert)',
|
2026-01-11 22:09:41 +05:30
|
|
|
location: 'San Francisco, CA',
|
2026-01-20 01:41:09 +05:30
|
|
|
experience: '10+ years in the real estate industry.',
|
|
|
|
|
expertise: ['Residential', 'Rental', 'Commercial', 'Inspection', 'Land', 'Rental'],
|
|
|
|
|
imageUrl: '/assets/images/professional-1.jpg',
|
2026-01-11 22:09:41 +05:30
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
id: '2',
|
|
|
|
|
name: 'Arjun Mehta',
|
2026-01-20 01:41:09 +05:30
|
|
|
subtitle: '(Residential Property Expert)',
|
2026-01-11 22:09:41 +05:30
|
|
|
location: 'San Francisco, CA',
|
2026-01-20 01:41:09 +05:30
|
|
|
experience: '10+ years in the real estate industry.',
|
|
|
|
|
expertise: ['Residential', 'Rental', 'Commercial', 'Inspection', 'Land', 'Rental'],
|
|
|
|
|
imageUrl: '/assets/images/professional-2.jpg',
|
2026-01-11 22:09:41 +05:30
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
id: '3',
|
|
|
|
|
name: 'Arjun Mehta',
|
2026-01-20 01:41:09 +05:30
|
|
|
subtitle: '(Residential Property Expert)',
|
2026-01-11 22:09:41 +05:30
|
|
|
location: 'San Francisco, CA',
|
2026-01-20 01:41:09 +05:30
|
|
|
experience: '10+ years in the real estate industry.',
|
|
|
|
|
expertise: ['Residential', 'Rental', 'Commercial', 'Inspection', 'Land', 'Rental'],
|
|
|
|
|
imageUrl: '/assets/images/professional-3.jpg',
|
2026-01-11 22:09:41 +05:30
|
|
|
},
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
const lendersData = [
|
|
|
|
|
{
|
|
|
|
|
id: '4',
|
|
|
|
|
name: 'Sarah Johnson',
|
2026-01-20 01:41:09 +05:30
|
|
|
subtitle: '(Mortgage Specialist)',
|
2026-01-11 22:09:41 +05:30
|
|
|
location: 'Los Angeles, CA',
|
2026-01-20 01:41:09 +05:30
|
|
|
experience: '10+ years in mortgage lending.',
|
|
|
|
|
expertise: ['FHA Loans', 'Conventional', 'VA Loans', 'Refinancing', 'Jumbo'],
|
|
|
|
|
imageUrl: '/assets/images/professional-1.jpg',
|
2026-01-11 22:09:41 +05:30
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
id: '5',
|
|
|
|
|
name: 'Michael Chen',
|
2026-01-20 01:41:09 +05:30
|
|
|
subtitle: '(Senior Loan Officer)',
|
2026-01-11 22:09:41 +05:30
|
|
|
location: 'Seattle, WA',
|
2026-01-20 01:41:09 +05:30
|
|
|
experience: '7+ years in lending.',
|
|
|
|
|
expertise: ['Jumbo Loans', 'Refinancing', 'Investment', 'First-time', 'USDA'],
|
|
|
|
|
imageUrl: '/assets/images/professional-2.jpg',
|
2026-01-11 22:09:41 +05:30
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
id: '6',
|
|
|
|
|
name: 'Emily Davis',
|
2026-01-20 01:41:09 +05:30
|
|
|
subtitle: '(Home Loan Advisor)',
|
2026-01-11 22:09:41 +05:30
|
|
|
location: 'Austin, TX',
|
2026-01-20 01:41:09 +05:30
|
|
|
experience: '5+ years in mortgage industry.',
|
|
|
|
|
expertise: ['First-time Buyers', 'FHA', 'USDA Loans', 'VA Loans', 'Conventional'],
|
|
|
|
|
imageUrl: '/assets/images/professional-3.jpg',
|
2026-01-11 22:09:41 +05:30
|
|
|
},
|
|
|
|
|
];
|
|
|
|
|
|
2026-01-20 01:41:09 +05:30
|
|
|
interface ProfessionalCardProps {
|
|
|
|
|
name: string;
|
|
|
|
|
subtitle: string;
|
|
|
|
|
location: string;
|
|
|
|
|
experience: string;
|
|
|
|
|
expertise: string[];
|
|
|
|
|
imageUrl: string;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function ProfessionalCard({
|
|
|
|
|
name,
|
|
|
|
|
subtitle,
|
|
|
|
|
location,
|
|
|
|
|
experience,
|
|
|
|
|
expertise,
|
|
|
|
|
imageUrl,
|
|
|
|
|
}: ProfessionalCardProps) {
|
|
|
|
|
return (
|
2026-01-20 09:51:40 +05:30
|
|
|
<div className="bg-white rounded-[15px] overflow-hidden shadow-[0px_4px_20px_rgba(0,0,0,0.08)]">
|
2026-01-20 01:41:09 +05:30
|
|
|
{/* Image */}
|
2026-01-20 09:51:40 +05:30
|
|
|
<div className="relative h-[226px] w-full overflow-hidden">
|
2026-01-20 01:41:09 +05:30
|
|
|
<Image
|
|
|
|
|
src={imageUrl}
|
|
|
|
|
alt={name}
|
|
|
|
|
fill
|
|
|
|
|
className="object-cover"
|
|
|
|
|
/>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
{/* Content */}
|
|
|
|
|
<div className="p-4">
|
|
|
|
|
{/* Name */}
|
2026-01-20 09:51:40 +05:30
|
|
|
<h3 className="font-fractul font-bold text-[14px] leading-normal text-[#00293d]">
|
2026-01-20 01:41:09 +05:30
|
|
|
{name}
|
|
|
|
|
</h3>
|
|
|
|
|
|
|
|
|
|
{/* Subtitle */}
|
2026-01-20 09:51:40 +05:30
|
|
|
<p className="font-serif font-normal text-[10px] leading-normal text-[#00293d] mt-1">
|
2026-01-20 01:41:09 +05:30
|
|
|
{subtitle}
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
{/* Verified Badge */}
|
|
|
|
|
<div className="flex items-center gap-1.5 mt-2">
|
|
|
|
|
<Image
|
2026-01-20 09:51:40 +05:30
|
|
|
src="/assets/icons/verified-badge-blue.svg"
|
2026-01-20 01:41:09 +05:30
|
|
|
alt="Verified"
|
|
|
|
|
width={14}
|
|
|
|
|
height={14}
|
|
|
|
|
/>
|
2026-01-20 09:51:40 +05:30
|
|
|
<span className="font-serif font-medium text-[14px] leading-normal text-[#638559]">
|
2026-01-20 01:41:09 +05:30
|
|
|
“Verified local agent”
|
|
|
|
|
</span>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
{/* Location */}
|
|
|
|
|
<div className="mt-3">
|
2026-01-20 09:51:40 +05:30
|
|
|
<p className="font-fractul font-bold text-[14px] leading-normal text-[#00293d]">
|
2026-01-20 01:41:09 +05:30
|
|
|
Location:
|
|
|
|
|
</p>
|
2026-01-20 09:51:40 +05:30
|
|
|
<div className="flex items-center gap-1.5 mt-1">
|
2026-01-20 01:41:09 +05:30
|
|
|
<Image
|
2026-01-20 09:51:40 +05:30
|
|
|
src="/assets/icons/location-pin-orange.svg"
|
2026-01-20 01:41:09 +05:30
|
|
|
alt="Location"
|
|
|
|
|
width={12}
|
2026-01-20 09:51:40 +05:30
|
|
|
height={15}
|
2026-01-20 01:41:09 +05:30
|
|
|
/>
|
2026-01-20 09:51:40 +05:30
|
|
|
<span className="font-serif font-normal text-[10px] leading-normal text-[#00293d]">
|
2026-01-20 01:41:09 +05:30
|
|
|
{location}
|
|
|
|
|
</span>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
{/* Expertise */}
|
|
|
|
|
<div className="mt-3">
|
2026-01-20 09:51:40 +05:30
|
|
|
<p className="font-fractul font-bold text-[14px] leading-normal text-[#00293d]">
|
2026-01-20 01:41:09 +05:30
|
|
|
Expertise:
|
|
|
|
|
</p>
|
|
|
|
|
<div className="flex flex-wrap gap-1.5 mt-2">
|
|
|
|
|
{expertise.slice(0, 6).map((tag, index) => (
|
|
|
|
|
<span
|
|
|
|
|
key={index}
|
2026-01-20 09:51:40 +05:30
|
|
|
className="border-[0.7px] border-[#00293d] rounded-[15px] px-[5px] h-[24px] flex items-center justify-center font-serif font-normal text-[13px] leading-[100%] text-[#00293d]"
|
2026-01-20 01:41:09 +05:30
|
|
|
>
|
|
|
|
|
{tag}
|
|
|
|
|
</span>
|
|
|
|
|
))}
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
{/* Experience */}
|
2026-01-20 09:51:40 +05:30
|
|
|
<p className="mt-3 text-[14px] leading-normal text-[#00293d]">
|
2026-01-20 01:41:09 +05:30
|
|
|
<span className="font-fractul font-bold">Experience:</span>
|
|
|
|
|
<span className="font-serif font-normal"> {experience}</span>
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
{/* Star Rating */}
|
|
|
|
|
<div className="flex gap-1 mt-3">
|
|
|
|
|
{[...Array(5)].map((_, i) => (
|
|
|
|
|
<Image
|
|
|
|
|
key={i}
|
2026-01-20 09:51:40 +05:30
|
|
|
src="/assets/icons/star-yellow.svg"
|
2026-01-20 01:41:09 +05:30
|
|
|
alt="Star"
|
|
|
|
|
width={18}
|
2026-01-20 09:51:40 +05:30
|
|
|
height={17}
|
2026-01-20 01:41:09 +05:30
|
|
|
/>
|
|
|
|
|
))}
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
2026-01-11 22:09:41 +05:30
|
|
|
export function TopProfessionals() {
|
|
|
|
|
const [activeTab, setActiveTab] = useState<'agents' | 'lenders'>('agents');
|
|
|
|
|
const displayData = activeTab === 'agents' ? agentsData : lendersData;
|
|
|
|
|
|
|
|
|
|
return (
|
2026-01-20 01:41:09 +05:30
|
|
|
<section className="py-10 md:py-12 bg-white">
|
2026-01-11 22:09:41 +05:30
|
|
|
<div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
|
|
|
|
|
{/* Section Header */}
|
|
|
|
|
<div className="text-center mb-10">
|
2026-01-20 01:41:09 +05:30
|
|
|
<h2 className="font-fractul font-bold text-[32px] md:text-[40px] leading-[1.2] text-[#00293d]">
|
2026-01-11 22:09:41 +05:30
|
|
|
“Meet top real estate professionals”
|
|
|
|
|
</h2>
|
|
|
|
|
</div>
|
|
|
|
|
|
2026-01-20 01:41:09 +05:30
|
|
|
{/* Tabs Container */}
|
|
|
|
|
<div className="flex justify-center mb-10">
|
2026-01-20 09:44:56 +05:30
|
|
|
<div className="border border-[#00293d]/10 rounded-[5px] p-5 inline-flex items-center">
|
2026-01-20 01:41:09 +05:30
|
|
|
{/* Agents Tab */}
|
|
|
|
|
<button
|
|
|
|
|
onClick={() => setActiveTab('agents')}
|
2026-01-20 09:44:56 +05:30
|
|
|
className={`flex items-center gap-2 px-10 py-3 rounded-[5px] font-serif font-semibold text-[17px] transition-all ${
|
2026-01-20 01:41:09 +05:30
|
|
|
activeTab === 'agents'
|
|
|
|
|
? 'bg-[#00293d] text-[#f0f5fc]'
|
2026-01-20 09:44:56 +05:30
|
|
|
: 'border border-[#00293d]/20 text-[#00293d] hover:bg-gray-50'
|
2026-01-20 01:41:09 +05:30
|
|
|
}`}
|
|
|
|
|
>
|
|
|
|
|
<Image
|
2026-01-20 09:44:56 +05:30
|
|
|
src={activeTab === 'agents' ? '/assets/icons/agents-tab-icon-orange.svg' : '/assets/icons/agents-tab-icon.svg'}
|
2026-01-20 01:41:09 +05:30
|
|
|
alt=""
|
|
|
|
|
width={20}
|
|
|
|
|
height={20}
|
|
|
|
|
/>
|
|
|
|
|
Agents
|
|
|
|
|
</button>
|
|
|
|
|
|
|
|
|
|
{/* Divider */}
|
2026-01-20 09:44:56 +05:30
|
|
|
<div className="h-[44px] w-px bg-[#00293d]/20 mx-4" />
|
2026-01-20 01:41:09 +05:30
|
|
|
|
|
|
|
|
{/* Lenders Tab */}
|
|
|
|
|
<button
|
|
|
|
|
onClick={() => setActiveTab('lenders')}
|
2026-01-20 09:44:56 +05:30
|
|
|
className={`flex items-center gap-2 px-10 py-3 rounded-[5px] font-serif font-semibold text-[17px] transition-all ${
|
2026-01-20 01:41:09 +05:30
|
|
|
activeTab === 'lenders'
|
|
|
|
|
? 'bg-[#00293d] text-[#f0f5fc]'
|
2026-01-20 09:44:56 +05:30
|
|
|
: 'border border-[#00293d]/20 text-[#00293d] hover:bg-gray-50'
|
2026-01-20 01:41:09 +05:30
|
|
|
}`}
|
|
|
|
|
>
|
|
|
|
|
<Image
|
2026-01-20 09:44:56 +05:30
|
|
|
src={activeTab === 'lenders' ? '/assets/icons/lenders-tab-icon-orange.svg' : '/assets/icons/lenders-tab-icon.svg'}
|
2026-01-20 01:41:09 +05:30
|
|
|
alt=""
|
|
|
|
|
width={20}
|
|
|
|
|
height={20}
|
|
|
|
|
/>
|
|
|
|
|
Lenders
|
|
|
|
|
</button>
|
|
|
|
|
</div>
|
2026-01-11 22:09:41 +05:30
|
|
|
</div>
|
|
|
|
|
|
2026-01-20 01:41:09 +05:30
|
|
|
{/* Cards Grid - 3 cards + CTA sidebar */}
|
|
|
|
|
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6">
|
|
|
|
|
{/* Professional Cards */}
|
2026-01-11 22:09:41 +05:30
|
|
|
{displayData.map((professional) => (
|
2026-01-20 01:41:09 +05:30
|
|
|
<ProfessionalCard
|
2026-01-11 22:09:41 +05:30
|
|
|
key={professional.id}
|
|
|
|
|
name={professional.name}
|
2026-01-20 01:41:09 +05:30
|
|
|
subtitle={professional.subtitle}
|
2026-01-11 22:09:41 +05:30
|
|
|
location={professional.location}
|
|
|
|
|
experience={professional.experience}
|
|
|
|
|
expertise={professional.expertise}
|
|
|
|
|
imageUrl={professional.imageUrl}
|
|
|
|
|
/>
|
|
|
|
|
))}
|
|
|
|
|
|
2026-01-20 01:41:09 +05:30
|
|
|
{/* CTA Sidebar Card */}
|
2026-01-20 09:44:56 +05:30
|
|
|
<div
|
|
|
|
|
className="rounded-[15px] p-6 flex flex-col items-center justify-center text-center min-h-[400px]"
|
|
|
|
|
style={{
|
|
|
|
|
background: 'linear-gradient(180deg, #C5D6D6 0%, #FFFFFF 100%)',
|
|
|
|
|
}}
|
|
|
|
|
>
|
2026-01-20 01:41:09 +05:30
|
|
|
{/* Building Icon */}
|
|
|
|
|
<div className="mb-4">
|
|
|
|
|
<Image
|
|
|
|
|
src="/assets/icons/building-icon.svg"
|
|
|
|
|
alt="Building"
|
|
|
|
|
width={50}
|
|
|
|
|
height={38}
|
|
|
|
|
/>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
{/* Text */}
|
|
|
|
|
<p className="font-fractul font-normal text-[14px] leading-[1.4] text-[#00293d] mb-6">
|
|
|
|
|
Discover 5,000+ Top Real Estate Agents in Our Network.
|
2026-01-11 22:09:41 +05:30
|
|
|
</p>
|
2026-01-20 01:41:09 +05:30
|
|
|
|
|
|
|
|
{/* Browse Experts Button */}
|
2026-02-02 16:24:39 +05:30
|
|
|
<Link href="/user/profiles">
|
2026-01-20 01:41:09 +05:30
|
|
|
<button className="bg-[#e58625] hover:bg-[#d47820] text-white font-fractul font-bold text-[16px] leading-[19px] px-8 py-3 rounded-[15px] transition-colors">
|
2026-01-11 22:09:41 +05:30
|
|
|
Browse Experts
|
2026-01-20 01:41:09 +05:30
|
|
|
</button>
|
2026-01-11 22:09:41 +05:30
|
|
|
</Link>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</section>
|
|
|
|
|
);
|
|
|
|
|
}
|