src/pages/index.tsx (58 lines of code) (raw):
import React, { useEffect } from "react";
import Layout from "@theme/Layout";
import useDocusaurusContext from "@docusaurus/useDocusaurusContext";
import useIsBrowser from "@docusaurus/useIsBrowser";
import { translate } from "@docusaurus/Translate";
import HomepageHeader from "./home/components/HomepageHeader";
import HomepageFeatures from "./home/components/HomepageFeatures";
import HomePageLanguageCard from "./home/components/HomePageLanguageCard";
import HomepageCodeDisplay from "./home/components/HomepageCodeDisplay";
import HomepageFoot from "./home/components/HomepageFoot";
import useAOS from "../hooks/useAOS";
export default function App() {
const isBrowser = useIsBrowser();
const { siteConfig } = useDocusaurusContext();
const pathname = isBrowser && window.location.pathname;
const handleNavClass = () => {
if (isBrowser) {
try {
const nav = document.getElementsByTagName("nav")[0];
if (!nav) return;
const classList = nav.classList;
if (pathname === "/" || pathname === "/zh-CN/") {
classList.add("index-nav");
} else {
classList.remove("index-nav");
}
} catch (error) {
console.error("处理导航栏类名时出错:", error);
}
}
};
useEffect(() => {
handleNavClass();
}, [isBrowser, pathname]);
useAOS();
const metaDescription = translate({
id: "homepage.metaDescription",
message: siteConfig.tagline,
description: "The meta description of the homepage",
});
return (
<Layout title={`${siteConfig.title}`} description={metaDescription}>
<main>
<HomepageHeader />
<div data-aos="fade-up" data-aos-delay="10">
<HomepageFeatures />
</div>
<div data-aos="fade-up" data-aos-delay="10">
<HomePageLanguageCard />
</div>
<div data-aos="fade-up" data-aos-delay="10">
<HomepageCodeDisplay />
</div>
<div data-aos="fade-up" data-aos-delay="10">
<HomepageFoot />
</div>
</main>
</Layout>
);
}