first commit
This commit is contained in:
29
src/routes/__root.tsx
Normal file
29
src/routes/__root.tsx
Normal file
@@ -0,0 +1,29 @@
|
||||
import { useEffect } from 'react'
|
||||
import { createRootRoute, Outlet, useLocation } from '@tanstack/react-router'
|
||||
import Header from '../components/layout/Header'
|
||||
import Footer from '../components/layout/Footer'
|
||||
import ScrollToTop from '../components/layout/ScrollToTop'
|
||||
|
||||
export const Route = createRootRoute({
|
||||
component: RootLayout,
|
||||
})
|
||||
|
||||
function RootLayout() {
|
||||
const { pathname } = useLocation()
|
||||
|
||||
// 路由切换时滚动到页面顶部
|
||||
useEffect(() => {
|
||||
window.scrollTo(0, 0)
|
||||
}, [pathname])
|
||||
|
||||
return (
|
||||
<div className="min-h-screen flex flex-col">
|
||||
<Header />
|
||||
<main className="flex-1">
|
||||
<Outlet />
|
||||
</main>
|
||||
<Footer />
|
||||
<ScrollToTop />
|
||||
</div>
|
||||
)
|
||||
}
|
||||
22
src/routes/about.tsx
Normal file
22
src/routes/about.tsx
Normal file
@@ -0,0 +1,22 @@
|
||||
import { createFileRoute } from '@tanstack/react-router'
|
||||
import Breadcrumb from '../components/shared/Breadcrumb'
|
||||
import Mission from '../components/about/Mission'
|
||||
import WhyChooseUs from '../components/about/WhyChooseUs'
|
||||
import Statistics from '../components/about/Statistics'
|
||||
import Team from '../components/about/Team'
|
||||
|
||||
export const Route = createFileRoute('/about')({
|
||||
component: AboutPage,
|
||||
})
|
||||
|
||||
function AboutPage() {
|
||||
return (
|
||||
<>
|
||||
<Breadcrumb title="About Us" currentPage="About" />
|
||||
<Mission />
|
||||
<WhyChooseUs />
|
||||
<Statistics />
|
||||
<Team />
|
||||
</>
|
||||
)
|
||||
}
|
||||
18
src/routes/contact.tsx
Normal file
18
src/routes/contact.tsx
Normal file
@@ -0,0 +1,18 @@
|
||||
import { createFileRoute } from '@tanstack/react-router'
|
||||
import Breadcrumb from '../components/shared/Breadcrumb'
|
||||
import ContactForm from '../components/contact/ContactForm'
|
||||
import Map from '../components/contact/Map'
|
||||
|
||||
export const Route = createFileRoute('/contact')({
|
||||
component: ContactPage,
|
||||
})
|
||||
|
||||
function ContactPage() {
|
||||
return (
|
||||
<>
|
||||
<Breadcrumb title="Contact Us" currentPage="Contact" />
|
||||
<ContactForm />
|
||||
<Map />
|
||||
</>
|
||||
)
|
||||
}
|
||||
26
src/routes/index.tsx
Normal file
26
src/routes/index.tsx
Normal file
@@ -0,0 +1,26 @@
|
||||
import { createFileRoute } from '@tanstack/react-router'
|
||||
import HeroSlider from '../components/home/HeroSlider'
|
||||
import Features from '../components/home/Features'
|
||||
import Services from '../components/home/Services'
|
||||
import CTA from '../components/home/CTA'
|
||||
import Testimonials from '../components/home/Testimonials'
|
||||
import Stats from '../components/home/Stats'
|
||||
import LatestNews from '../components/home/LatestNews'
|
||||
|
||||
export const Route = createFileRoute('/')({
|
||||
component: HomePage,
|
||||
})
|
||||
|
||||
function HomePage() {
|
||||
return (
|
||||
<>
|
||||
<HeroSlider />
|
||||
<Features />
|
||||
<Services />
|
||||
<CTA />
|
||||
<Testimonials />
|
||||
<Stats />
|
||||
<LatestNews />
|
||||
</>
|
||||
)
|
||||
}
|
||||
20
src/routes/services.tsx
Normal file
20
src/routes/services.tsx
Normal file
@@ -0,0 +1,20 @@
|
||||
import { createFileRoute } from '@tanstack/react-router'
|
||||
import Breadcrumb from '../components/shared/Breadcrumb'
|
||||
import ServiceCards from '../components/services/ServiceCards'
|
||||
import ProcessSteps from '../components/services/ProcessSteps'
|
||||
import AdvanceFeatures from '../components/services/AdvanceFeatures'
|
||||
|
||||
export const Route = createFileRoute('/services')({
|
||||
component: ServicesPage,
|
||||
})
|
||||
|
||||
function ServicesPage() {
|
||||
return (
|
||||
<>
|
||||
<Breadcrumb title="Our Services" currentPage="Services" />
|
||||
<ServiceCards />
|
||||
<ProcessSteps />
|
||||
<AdvanceFeatures />
|
||||
</>
|
||||
)
|
||||
}
|
||||
Reference in New Issue
Block a user