5180 fichiers 38.5 Mo 0 téléchargements 127 vues mis à jour il y a 4 heures ui
nitro-v36-with-renderer-v36 / src / common / HorizontalRule.tsx
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} />;
};
15Sujets
1Dépôts
20Membres
7En ligne
Profile
Inscrit
Dernière visite
Messages
0
Votes positifs
0
Votes négatifs
0

Nous utilisons des cookies pour assurer le bon fonctionnement du site et améliorer votre expérience. en savoir plus

Autoriser