import { Flex, Button } from '@aws-amplify/ui-react'; import Link from 'next/link'; import { useRouter } from 'next/router'; import { FRAMEWORKS, FRAMEWORK_DISPLAY_NAMES } from '@/data/frameworks'; import metaData from '@/data/pages.preval'; import { FrameworkLogo } from '@/components/Logo'; interface FrameworkLinkProps extends FrameworkChooserProps { framework: string; isDisabled: boolean; } const platformPath = '[platform]'; const FrameworkLink = ({ framework, onClick, isDisabled, }: FrameworkLinkProps) => { const { pathname, query } = useRouter(); const isCurrent = query.platform === framework; const classNames = `docs-framework-link ${isCurrent ? 'current' : ''}`; const href = pathname.includes(platformPath) ? pathname.replace(platformPath, framework) : `/${framework}`; const frameworkButton = ( ); return isDisabled ? ( frameworkButton ) : ( {frameworkButton} ); }; interface FrameworkChooserProps { onClick?: React.MouseEventHandler; } export const FrameworkChooser = ({ onClick }: FrameworkChooserProps) => { const { pathname } = useRouter(); const { frontmatter: { supportedFrameworks = 'react' }, } = metaData[pathname]; const frameworksOptions = supportedFrameworks === 'all' ? FRAMEWORKS : supportedFrameworks.split('|'); return ( {FRAMEWORKS.map((framework) => ( ))} ); };