import { ProductT, ProductGroupT, useMainContext } from 'components/context/MainContext' import React from 'react' import { useRouter } from 'next/router' import { useVersion } from 'components/hooks/useVersion' import { Link } from 'components/Link' import * as Octicons from '@primer/octicons-react' type ProductSelectionCardProps = { name: string group: ProductGroupT } export const ProductSelectionCard = ({ name, group }: ProductSelectionCardProps) => { const router = useRouter() const { currentVersion } = useVersion() const { isFPT } = useMainContext() function href(product: ProductT) { return `${!product.external ? `/${router.locale}` : ''}${ product.versions?.includes(currentVersion) && !isFPT ? `/${currentVersion}/${product.id}` : product.href }` } const groupIcon = { height: '22px', } function showProduct(product: ProductT) { return isFPT || product.versions?.includes(currentVersion) || product.external } function icon(group: ProductGroupT) { if (group.icon) { return (
{group.name}
) } else if (group.octicon) { const octicon: React.FunctionComponent = ( Octicons as { [name: string]: React.FunctionComponent } )[group.octicon] as React.FunctionComponent return (
{React.createElement(octicon, groupIcon as React.Attributes, null)}
) } } return (
{icon(group)}

{name}

    {group.children.map((product) => { if (!showProduct(product)) { return null } return (
  • {product.name}
  • ) })}
) }