HorizontalRule.tsx 1 Ko
Télécharger le fichier
import { CSSProperties, FC, useMemo } from 'react';
import { Base, BaseProps } from './Base';
import { ColorVariantType } from './types';
export interface HorizontalRuleProps extends BaseProps<HTMLDivElement> {
variant?: ColorVariantType;
height?: number;
}
export const HorizontalRule: FC<HorizontalRuleProps> = (props) => {
const { variant = 'black', height = 1, classNames = [], style = {}, ...rest } = props;
const getClassNames = useMemo(() => {
const newClassNames: string[] = [];
if (variant) newClassNames.push('bg-' + variant);
if (classNames.length) newClassNames.push(...classNames);
return newClassNames;
}, [variant, classNames]);
const getStyle = useMemo(() => {
let newStyle: CSSProperties = { display: 'list-item' };
if (height > 0) newStyle.height = height;
if (Object.keys(style).length) newStyle = { ...newStyle, ...style };
return newStyle;
}, [height, style]);
return <Base classNames={getClassNames} style={getStyle} {...rest} />;
};
