import * as React from 'react'; import { devUseWarning } from '../_util/warning'; import type { BlockProps } from './Base'; import Base from './Base'; const TITLE_ELE_LIST = [1, 2, 3, 4, 5] as const; export interface TitleProps extends Omit, 'strong'>, Omit< React.HTMLAttributes, 'type' | keyof BlockProps<'h1' | 'h2' | 'h3' | 'h4' | 'h5'> > { level?: typeof TITLE_ELE_LIST[number]; } const Title = React.forwardRef((props, ref) => { const { level = 1, ...restProps } = props; let component: keyof JSX.IntrinsicElements; if (process.env.NODE_ENV !== 'production') { const warning = devUseWarning(); warning( TITLE_ELE_LIST.includes(level), 'Typography.Title', 'usage', 'Title only accept `1 | 2 | 3 | 4 | 5` as `level` value. And `5` need 4.6.0+ version.', ); } if (TITLE_ELE_LIST.includes(level)) { component = `h${level}`; } else { component = 'h1'; } return ; }); export default Title;