OctaneCardTabsItemView.tsx 1.2 Ko
Télécharger le fichier
import { FC, useMemo } from 'react';
import { Flex, FlexProps } from '../../Flex';
import { LayoutItemCountView } from '../../layout';
import { nativeTextChildren } from '../../native-text/nativeTextChildren';
interface OctaneCardTabsItemViewProps extends FlexProps {
isActive?: boolean;
count?: number;
}
export const OctaneCardTabsItemView: FC<OctaneCardTabsItemViewProps> = (props) => {
const { isActive = false, count = 0, overflow = 'hidden', position = 'relative', pointer = true, classNames = [], children = null, ...rest } = props;
const getClassNames = useMemo(() => {
const newClassNames: string[] = ['octane-card-tab-item overflow-hidden relative cursor-pointer z-1', isActive && 'octane-card-tab-item-active -mb-px'];
if (classNames.length) newClassNames.push(...classNames);
return newClassNames;
}, [isActive, classNames]);
return (
<Flex center classNames={getClassNames} overflow={overflow} pointer={pointer} position={position} {...rest}>
<span className="octane-card-tab-item-label">{nativeTextChildren(children, isActive)}</span>
{count > 0 && <LayoutItemCountView count={count} />}
</Flex>
);
};
