@i-novus/ui-core
Version:
Базовые UI компоненты
22 lines (21 loc) • 1.1 kB
JavaScript
import { jsx as _jsx } from "react/jsx-runtime";
import { forwardRef, useMemo, useRef } from 'react';
import classNames from 'classnames';
import { useConfigProvider } from '../../core';
import { Ellipsis } from './Ellipsis';
const typographyFont = [11, 12, 14, 16, 20];
export const TypographyBody = forwardRef((props, ref) => {
const { className, prefix, fontSize, bold, italic, children, ...restProps } = props;
const { getPrefix } = useConfigProvider();
const prefixCls = getPrefix(prefix);
const innerRef = useRef(null);
const classNamesFactory = useMemo(() => {
const baseClassName = `${prefixCls}-typography`;
return classNames(baseClassName, {
[`${baseClassName}_bold`]: bold,
[`${baseClassName}_italic`]: italic,
[`${baseClassName}-font_${fontSize}`]: fontSize && typographyFont.includes(Number(fontSize)),
}, className);
}, [bold, className, fontSize, italic, prefixCls]);
return (_jsx(Ellipsis, { ref: ref || innerRef, className: classNamesFactory, ...restProps, children: children || '' }));
});