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) => (
))}
);
};