import clsx from 'clsx'; import { ReactNode } from 'react'; import styles from './NavTabs.module.css'; export interface Option { label: string | ReactNode; children?: ReactNode; id: T; } interface Props { options: Option[]; selectedId?: T; onSelect?(id: T): void; disabled?: boolean; } export function NavTabs({ options, selectedId, onSelect = () => {}, disabled, }: Props) { const selected = options.find((option) => option.id === selectedId); return (
{selected && selected.children && (
{selected.children}
)}
); function handleSelect(option: Option) { if (disabled) { return; } if (option.children) { onSelect(option.id); } } }