import { GetServerSideProps } from 'next' import { MainContextT, MainContext, getMainContext, useMainContext, } from 'components/context/MainContext' import { DefaultLayout } from 'components/DefaultLayout' import { useTranslation } from 'components/hooks/useTranslation' import { useVersion } from 'components/hooks/useVersion' import { LinkExternalIcon } from '@primer/octicons-react' import { useRouter } from 'next/router' import { OctocatHeader } from 'components/landing/OctocatHeader' import { ArticleList } from 'components/landing/ArticleList' import { Search } from 'components/Search' type FeaturedLink = { href: string title: string intro: string } type Props = { mainContext: MainContextT popularLinks: Array gettingStartedLinks: Array } export default function MainLanding({ mainContext, gettingStartedLinks, popularLinks }: Props) { return ( ) } type LandingPageProps = { popularLinks: Array gettingStartedLinks: Array } function LandingPage(props: LandingPageProps) { const router = useRouter() const { gettingStartedLinks, popularLinks } = props const { activeProducts, isFPT } = useMainContext() const { currentVersion } = useVersion() const { t } = useTranslation(['homepage', 'search', 'toc']) return (
{/* */}
{/* eslint-disable-next-line jsx-a11y/no-autofocus */} {({ SearchInput, SearchResults }) => { return (

{t('search:need_help')}

{SearchInput}
{SearchResults}
) }}
{/* */}

{t('explore_by_product')}

{activeProducts.map((product) => { if (!isFPT && !product.versions?.includes(currentVersion) && !product.external) { return null } const href = `${!product.external ? `/${router.locale}` : ''}${ product.versions?.includes(currentVersion) && !isFPT ? `/${currentVersion}/${product.id}` : product.href }` return ( ) })}
) } export const getServerSideProps: GetServerSideProps = async (context) => { const req = context.req as any const res = context.res as any return { props: { mainContext: getMainContext(req, res), gettingStartedLinks: req.context.featuredLinks.gettingStarted.map( ({ title, href, intro }: any) => ({ title, href, intro }) ), popularLinks: req.context.featuredLinks.popular.map(({ title, href, intro }: any) => ({ title, href, intro, })), }, } }