Files
ridebus-website/pages/index.tsx
Zakhar Timoshenko 142ec97959 feat: add Open Graph image generation and SEO metadata
- Introduced `PageSeo` component for managing page metadata for social sharing.
- Created Open Graph image templates using SVG and static fonts for better visual representation.
- Implemented service alert management with functions to check active alerts and format route numbers.
- Added utility functions for generating and watching alert validity.
- Developed a script to generate Open Graph images dynamically based on page content.
- Included tests for service alert functionalities to ensure correctness and reliability.
2026-10-05 13:02:06 +03:00

58 lines
2.0 KiB
TypeScript

import { Footer } from '@/components/footer';
import { TelegramCardButton } from '@/components/telegramCardButton';
import { GithubCardButton } from '@/components/githubCardButton';
import { GooglePlayButton } from '@/components/googlePlayButton';
import { ContributeCard } from '@/modules/home/contributeCard';
import Header from '@/modules/home/header';
import styles from '@/modules/home/home.module.scss';
import { DeparturesCard } from '@/modules/home/departuresCard/departuresCard';
import { FaqCard } from '@/modules/home/faqCard/faqCard';
import { FreeCard } from '@/modules/home/freeCard';
import { CitiesCard } from '@/modules/home/citiesCard';
import { ChangesCard } from '@/modules/home/changesCard/changesCard';
import { DownloadCard } from '@/modules/home/downloadCard/downloadCard';
import { ReportCard } from '@/modules/home/reportCard/reportCard';
import { FeaturesCards } from '@/modules/home/featuresCards/featuresCards';
import { LegalCards } from '@/modules/home/legalCards/legalCards';
import { PageSeo } from '@/components/pageSeo/pageSeo';
import { Fragment } from 'react';
export default function HomePage() {
return (
<Fragment>
<PageSeo page="home" />
<Header />
<main className={styles.main}>
<DownloadCard />
<div className={styles.liveCardsRow}>
<DeparturesCard />
<div className={styles.liveAside}>
<ChangesCard />
<ReportCard />
</div>
</div>
<div className={styles.cardsRow}>
<FreeCard />
<CitiesCard />
</div>
<FeaturesCards />
<div className={styles.cardsRow}>
<div className={styles.storesBlock}>
<GooglePlayButton className={styles.googlePlayButton} />
<div>
<TelegramCardButton />
</div>
<div>
<GithubCardButton />
</div>
</div>
<ContributeCard />
</div>
<FaqCard />
<LegalCards />
</main>
<Footer />
</Fragment>
);
}