Skip to content
Merged
5 changes: 5 additions & 0 deletions .changeset/text-remove-hooks.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@primer/react': patch
---

perf(Text): remove unnecessary useRef and useImperativeHandle hooks
14 changes: 3 additions & 11 deletions packages/react/src/Text/Text.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import {clsx} from 'clsx'
import React, {type ForwardedRef} from 'react'
import {useRefObjectAsForwardedRef} from '../hooks'
import type React from 'react'
import {type ForwardedRef} from 'react'
import classes from './Text.module.css'
import {fixedForwardRef, type PolymorphicProps} from '../utils/modern-polymorphic'

Expand All @@ -17,17 +17,9 @@ export type TextProps<As extends React.ElementType = 'span'> = PolymorphicProps<
// eslint-disable-next-line @typescript-eslint/no-explicit-any
function Text<As extends React.ElementType>(props: TextProps<As>, ref: ForwardedRef<any>) {
const {as: Component = 'span', className, size, weight, ...rest} = props
const innerRef = React.useRef<HTMLElement>(null)
useRefObjectAsForwardedRef(ref, innerRef)

return (
<Component
className={clsx(className, classes.Text)}
data-size={size}
data-weight={weight}
{...rest}
ref={innerRef}
/>
<Component className={clsx(className, classes.Text)} data-size={size} data-weight={weight} {...rest} ref={ref} />
)
}

Expand Down
Loading