- 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.
58 lines
2.0 KiB
TypeScript
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>
|
|
);
|
|
}
|