import * as React from "react"; import { Link } from "react-router-dom"; import { useTranslation } from "react-i18next"; import classnames from "classnames"; import { convertI18nText, I18nText } from "@/common"; import "./Tabs.css"; export interface Tab { name: string; text: I18nText; link?: string; onClick?: () => void; } export interface TabsProps { activeTabName?: string; actions?: React.ReactNode; dense?: boolean; tabs: Tab[]; className?: string; style?: React.CSSProperties; } export default function Tabs(props: TabsProps): React.ReactElement | null { const { tabs, activeTabName, className, style, dense, actions } = props; const { t } = useTranslation(); return (
{tabs.map((tab) => { const active = activeTabName === tab.name; const className = classnames("cru-nav-item", active && "active"); if (tab.link != null) { return ( {convertI18nText(tab.text, t)} ); } else { return ( {convertI18nText(tab.text, t)} ); } })}
{actions}
); }