import { RtGridRadius, RtGridSize } from '../rt-grid.types'; import { useContext } from 'react'; import { getGridLayoutNoneClass } from '../utils/get-grid-layout-none-class'; import cn from 'classnames'; import { getGridProviderClass } from '../utils/get-grid-provider-class'; import { RtGridChildContext, RtGridChildPosition } from '../rt-grid-child'; /** * Хук для интеграции функционала RtGrid в компонент, который управляет радиусами в составных компонентах. * * @function useGridChild * @param {Object} params - Параметры для настройки дочернего компонента сетки. * @param {RtGridSize} params.size - Конфигурация размера скруглений сетки. * @param {RtGridRadius} params.radius - Конфигурация типа скруглений сетки. * @returns {Object} Возвращает объект с CSS классом и объект атрибутов для настройки дочернего компонента сетки. * @property {string} gridChildClassname - CSS-класс для дочернего компонента сетки, определяется в зависимости от текущего состояния. * @property {Object} gridAttributes - Объект с атрибутами для дочернего компонента. * @property {string} data-rt-grid - Атрибут данных с информацией о радиусе и размере компонента. * @property {string} data-rt-grid-position - Атрибут данных с информацией о позиции в гриде. * * @example * import index from './index.module.css'; * import { useGridChild, RtGridChildContext } from '@dpa/react-grid'; * import { ReactNode, useId } from 'react'; * import classnames from 'classnames/bind' * * const cn = classnames.bind(index) * * export function TestGridButton(props: { * radius?: 'primary' | 'secondary'; * color?: 'red' | 'black'; * size?: 'xs' | 'sm' | 'md' | 'lg'; * children?: ReactNode * }) { * const { * radius = 'primary', * size = 'lg', * color = 'black', * children * } = props * const { gridChildClassname, gridAttributes } = useGridChild({ size, radius }); * * return ( *