import React from 'react';
import TopBar from '@/components/layout/TopBar.tsx';
import Hero from '@/components/landing/Hero.tsx';
import Sectors from '@/components/landing/Sectors.tsx';
import LiveActivity from '@/components/landing/LiveActivity.tsx';
import AdminPanel from '@/components/landing/AdminPanel.tsx';
import Footer from '@/components/layout/Footer.tsx';
import { useLandingPage } from '@/hooks/features/useLandingPage.ts';
import AnimatedSection from '@/components/layout/AnimatedSection.tsx';
import SymbiosisDemo from '@/components/landing/SymbiosisDemo.tsx';
import HowItWorksSection from '@/components/landing/HowItWorksSection.tsx';
import HeritageSection from '@/components/landing/HeritageSection.tsx';

const LandingPage = () => {
  const {
    addOrgButtonRef,
    onNavigateToMap,
    onAddOrganizationClick,
    onViewOrganization,
    onNavigateToAdmin,
    organizations,
    searchTerm,
    setSearchTerm,
    onSearchSubmit,
    onNavigate,
  } = useLandingPage();

  return (
    <div className="bg-background text-foreground">
      <TopBar
        showSearch
        searchTerm={searchTerm}
        onSearchChange={setSearchTerm}
        onSearchSubmit={onSearchSubmit}
      />
      <main className="scroll-smooth">
        <Hero
          onNavigateToMap={() => onNavigateToMap()}
          onAddOrganizationClick={onAddOrganizationClick}
          addOrgButtonRef={addOrgButtonRef}
        />
        <AnimatedSection>
          <Sectors onNavigateToMap={onNavigateToMap} />
        </AnimatedSection>
        <AnimatedSection>
          <HeritageSection onNavigate={() => onNavigate('heritage')} />
        </AnimatedSection>
        <AnimatedSection>
          <HowItWorksSection />
        </AnimatedSection>
        <AnimatedSection>
          <LiveActivity onViewOrganization={onViewOrganization} organizations={organizations} />
        </AnimatedSection>
        <AnimatedSection>
          <SymbiosisDemo onNavigateToMap={() => onNavigateToMap()} />
        </AnimatedSection>
        <AnimatedSection>
          <AdminPanel onNavigateToAdmin={onNavigateToAdmin} />
        </AnimatedSection>
      </main>
      <Footer onNavigate={onNavigate} />
    </div>
  );
};

export default LandingPage;
