5180 fichiers 38.5 Mo 0 téléchargements 166 vues mis à jour il y a 4 heures ui
Column.tsx 1.2 Ko Télécharger le fichier
import { FC, useMemo } from 'react';
import { Flex, FlexProps } from './Flex';
import { useGridContext } from './GridContext';
import { ColumnSizesType } from './types';

export interface ColumnProps extends FlexProps {
    size?: ColumnSizesType;
    offset?: ColumnSizesType;
    column?: boolean;
}

export const Column: FC<ColumnProps> = (props) => {
    const { size = 0, offset = 0, column = true, gap = 2, classNames = [], ...rest } = props;
    const { isCssGrid = false } = useGridContext();

    const getClassNames = useMemo(() => {
        const newClassNames: string[] = [];

        if (size) {
            let colClassName = `col-span-${size}`;

            if (isCssGrid) colClassName = `${colClassName}`;

            newClassNames.push(colClassName);
        }

        if (offset) {
            let colClassName = `offset-${offset}`;

            if (isCssGrid) colClassName = `g-start-${offset}`;

            newClassNames.push(colClassName);
        }

        if (classNames.length) newClassNames.push(...classNames);

        return newClassNames;
    }, [size, offset, isCssGrid, classNames]);

    return <Flex classNames={getClassNames} column={column} gap={gap} {...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