Skip to content

Commit 006cc27

Browse files
authored
Update useCombinedRefs to useMergedRefs
1 parent 7bf1ce1 commit 006cc27

16 files changed

Lines changed: 41 additions & 41 deletions

File tree

packages/react/src/ActionList/List.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import {useSlots} from '../hooks/useSlots'
55
import {Heading} from './Heading'
66
import {useId} from '../hooks/useId'
77
import {ListContext, type ActionListProps} from './shared'
8-
import {useCombinedRefs} from '../hooks'
8+
import {useMergedRefs} from '../hooks'
99
import {FocusKeys, useFocusZone} from '../hooks/useFocusZone'
1010
import {clsx} from 'clsx'
1111
import classes from './ActionList.module.css'
@@ -42,7 +42,7 @@ const UnwrappedList = <As extends React.ElementType = 'ul'>(
4242
const ariaLabelledBy = slots.heading ? (slots.heading.props.id ?? headingId) : listLabelledBy
4343
const listRole = role || listRoleFromContainer
4444
const listRef = useRef<HTMLElement>(null)
45-
const combinedRef = useCombinedRefs(forwardedRef, listRef)
45+
const mergedRef = useMergedRefs(forwardedRef, listRef)
4646

4747
let enableFocusZone = false
4848
if (enableFocusZoneFromContainer !== undefined) enableFocusZone = enableFocusZoneFromContainer
@@ -74,7 +74,7 @@ const UnwrappedList = <As extends React.ElementType = 'ul'>(
7474
className={clsx(classes.ActionList, className)}
7575
role={listRole}
7676
aria-labelledby={ariaLabelledBy}
77-
ref={combinedRef}
77+
ref={mergedRef}
7878
data-dividers={showDividers}
7979
data-variant={variant}
8080
{...restProps}

packages/react/src/ActionMenu/ActionMenu.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import {TriangleDownIcon, ChevronRightIcon} from '@primer/octicons-react'
33
import type {AnchoredOverlayProps} from '../AnchoredOverlay'
44
import {AnchoredOverlay} from '../AnchoredOverlay'
55
import type {OverlayProps} from '../Overlay'
6-
import {useProvidedStateOrCreate, useMenuKeyboardNavigation, useCombinedRefs} from '../hooks'
6+
import {useProvidedStateOrCreate, useMenuKeyboardNavigation, useMergedRefs} from '../hooks'
77
import {Divider} from '../ActionList/Divider'
88
import {ActionListContainerContext} from '../ActionList/ActionListContainerContext'
99
import type {ButtonProps} from '../Button'
@@ -111,7 +111,7 @@ const Menu: FCWithSlotMarker<React.PropsWithChildren<ActionMenuProps>> = ({
111111
const menuButtonChildId = React.isValidElement(menuButtonChild) ? menuButtonChild.props.id : undefined
112112

113113
const anchorRef = useRef<HTMLElement>(null)
114-
const combinedRef = useCombinedRefs(anchorRef, externalAnchorRef)
114+
const mergedRef = useMergedRefs(anchorRef, externalAnchorRef)
115115

116116
const anchorId = useId(menuButtonChildId)
117117
let renderAnchor: AnchoredOverlayProps['renderAnchor'] = null
@@ -290,7 +290,7 @@ const Overlay: FCWithSlotMarker<React.PropsWithChildren<MenuOverlayProps>> = ({
290290
} = React.useContext(MenuContext) as MandateProps<MenuContextProps, 'anchorRef'>
291291

292292
const anchorRef = useRef<HTMLElement>(null)
293-
const combinedAnchorRef = useCombinedRefs(anchorRef, contextAnchorRef)
293+
const combinedAnchorRef = useMergedRefs(anchorRef, contextAnchorRef)
294294

295295
const containerRef = React.useRef<HTMLDivElement>(null)
296296
const isNarrow = useResponsiveValue({narrow: true}, false)

packages/react/src/AnchoredOverlay/AnchoredOverlay.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import type {FocusTrapHookSettings} from '../hooks/useFocusTrap'
66
import {useFocusTrap} from '../hooks/useFocusTrap'
77
import type {FocusZoneHookSettings} from '../hooks/useFocusZone'
88
import {useFocusZone} from '../hooks/useFocusZone'
9-
import {useAnchoredPosition, useCombinedRefs, useRenderForcingRef} from '../hooks'
9+
import {useAnchoredPosition, useMergedRefs, useRenderForcingRef} from '../hooks'
1010
import {useId} from '../hooks/useId'
1111
import type {AnchorPosition, PositionSettings} from '@primer/behaviors'
1212
import {type ResponsiveValue} from '../hooks/useResponsiveValue'
@@ -161,10 +161,10 @@ export const AnchoredOverlay: React.FC<React.PropsWithChildren<AnchoredOverlayPr
161161
closeButtonProps = defaultCloseButtonProps,
162162
}) => {
163163
const anchorRef = useRef<HTMLElement>(null)
164-
const combinedRef = useCombinedRefs(anchorRef, externalAnchorRef)
164+
const mergedRef = useMergedRefs(anchorRef, externalAnchorRef)
165165

166166
const [overlayRef, updateOverlayRef] = useRenderForcingRef<HTMLDivElement>()
167-
const combinedOverlayRef = useCombinedRefs(updateOverlayRef, overlayProps?.ref)
167+
const combinedOverlayRef = useMergedRefs(updateOverlayRef, overlayProps?.ref)
168168

169169
const anchorId = useId(externalAnchorId)
170170

packages/react/src/ButtonGroup/ButtonGroup.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import React, {useRef, type PropsWithChildren} from 'react'
22
import classes from './ButtonGroup.module.css'
33
import {clsx} from 'clsx'
44
import {FocusKeys, useFocusZone} from '../hooks/useFocusZone'
5-
import {useCombinedRefs} from '../hooks'
5+
import {useMergedRefs} from '../hooks'
66
import type {ForwardRefComponent as PolymorphicForwardRefComponent} from '../utils/polymorphic'
77

88
export type ButtonGroupProps = PropsWithChildren<{
@@ -18,7 +18,7 @@ const ButtonGroup = React.forwardRef(function ButtonGroup(
1818
) {
1919
const buttons = React.Children.map(children, (child, index) => <div key={index}>{child}</div>)
2020
const buttonRef = useRef<HTMLDivElement>(null)
21-
const combinedRef = useCombinedRefs(buttonRef, forwardRef)
21+
const mergedRef = useMergedRefs(buttonRef, forwardRef)
2222

2323
useFocusZone({
2424
containerRef: buttonRef,
@@ -28,7 +28,7 @@ const ButtonGroup = React.forwardRef(function ButtonGroup(
2828
})
2929

3030
return (
31-
<BaseComponent ref={combinedRef} className={clsx(className, classes.ButtonGroup)} role={role} {...rest}>
31+
<BaseComponent ref={mergedRef} className={clsx(className, classes.ButtonGroup)} role={role} {...rest}>
3232
{buttons}
3333
</BaseComponent>
3434
)

packages/react/src/Checkbox/Checkbox.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import {clsx} from 'clsx'
2-
import {useCombinedRefs} from '../hooks'
2+
import {useMergedRefs} from '../hooks'
33
import React, {
44
useContext,
55
useEffect,
@@ -53,7 +53,7 @@ const Checkbox = React.forwardRef<HTMLInputElement, CheckboxProps>(
5353
// eslint-disable-next-line @typescript-eslint/no-explicit-any
5454
): ReactElement<any> => {
5555
const checkboxRef = useRef<HTMLInputElement>(null)
56-
const combinedRef = useCombinedRefs(checkboxRef, ref)
56+
const mergedRef = useMergedRefs(checkboxRef, ref)
5757
const checkboxGroupContext = useContext(CheckboxGroupContext)
5858
const handleOnChange: ChangeEventHandler<HTMLInputElement> = e => {
5959
checkboxGroupContext.onChange && checkboxGroupContext.onChange(e)

packages/react/src/Dialog/Dialog.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -429,7 +429,7 @@ Footer.displayName = 'Dialog.Footer'
429429

430430
const Buttons: React.FC<React.PropsWithChildren<{buttons: DialogButtonProps[]}>> = ({buttons}) => {
431431
const autoFocusRef = useRef<HTMLButtonElement>(null)
432-
const combinedRef = useCombinedRefs(autoFocusRef, buttons.find(button => button.autoFocus)?.ref)
432+
const mergedRef = useMergedRefs(autoFocusRef, buttons.find(button => button.autoFocus)?.ref)
433433
let autoFocusCount = 0
434434
const [hasRendered, setHasRendered] = useState(0)
435435
useEffect(() => {

packages/react/src/FilteredActionList/FilteredActionList.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import {isValidElementType} from 'react-is'
2121
import {useAnnouncements} from './useAnnouncements'
2222
import {clsx} from 'clsx'
2323
import {useVirtualizer} from '@tanstack/react-virtual'
24-
import {useCombinedRefs} from '../hooks'
24+
import {useMergedRefs} from '../hooks'
2525

2626
const menuScrollMargins: ScrollIntoViewOptions = {startMargin: 0, endMargin: 8}
2727

@@ -190,10 +190,10 @@ export function FilteredActionList({
190190
const listRef = useRef<HTMLUListElement>(null)
191191

192192
const scrollContainerRef = useRef<HTMLDivElement>(null)
193-
const combinedScrollContainerRef = useCombinedRefs(scrollContainerRef, providedScrollContainerRef)
193+
const combinedScrollContainerRef = useMergedRefs(scrollContainerRef, providedScrollContainerRef)
194194

195195
const inputRef = useRef<HTMLInputElement>(null)
196-
const combinedInputRef = useCombinedRefs(inputRef, providedInputRef)
196+
const combinedInputRef = useMergedRefs(inputRef, providedInputRef)
197197

198198
const usingRovingTabindex = _PrivateFocusManagement === 'roving-tabindex'
199199
const [listContainerElement, setListContainerElement] = useState<HTMLUListElement | null>(null)

packages/react/src/PageHeader/PageHeader.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import {getResponsiveAttributes} from '../internal/utils/getResponsiveAttributes
1010
import type {ForwardRefComponent as PolymorphicForwardRefComponent} from '../utils/polymorphic'
1111
import {areAllValuesTheSame, haveRegularAndWideSameValue} from '../utils/getBreakpointDeclarations'
1212
import {warning} from '../utils/warning'
13-
import {useCombinedRefs} from '../hooks'
13+
import {useMergedRefs} from '../hooks'
1414
import type {AriaRole, FCWithSlotMarker} from '../utils/types'
1515
import {clsx} from 'clsx'
1616

@@ -50,7 +50,7 @@ export type PageHeaderProps = {
5050
const Root = React.forwardRef<HTMLDivElement, React.PropsWithChildren<PageHeaderProps>>(
5151
({children, className, as: BaseComponent = 'div', 'aria-label': ariaLabel, role, hasBorder}, forwardedRef) => {
5252
const rootRef = useRef<HTMLDivElement>(null)
53-
const combinedRef = useCombinedRefs(rootRef, forwardedRef)
53+
const mergedRef = useMergedRefs(rootRef, forwardedRef)
5454

5555
const isInteractive = (element: HTMLElement) => {
5656
return (
@@ -106,7 +106,7 @@ const Root = React.forwardRef<HTMLDivElement, React.PropsWithChildren<PageHeader
106106

107107
return (
108108
<BaseComponent
109-
ref={combinedRef}
109+
ref={mergedRef}
110110
className={clsx(classes.PageHeader, className)}
111111
data-has-border={hasBorder ? 'true' : undefined}
112112
aria-label={ariaLabel}

packages/react/src/SelectPanel/SelectPanel.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import type {ItemProps, ItemInput} from './'
1212
import {SelectPanelMessage} from './SelectPanelMessage'
1313

1414
import {Button, IconButton, LinkButton} from '../Button'
15-
import {useCombinedRefs} from '../hooks'
15+
import {useMergedRefs} from '../hooks'
1616
import type {FocusZoneHookSettings} from '../hooks/useFocusZone'
1717
import {useId} from '../hooks/useId'
1818
import {useProvidedStateOrCreate} from '../hooks/useProvidedStateOrCreate'
@@ -514,7 +514,7 @@ function Panel({
514514
}, [notice, open])
515515

516516
const anchorRef = useRef<HTMLElement>(null)
517-
const combinedAnchorRef = useCombinedRefs(anchorRef, externalAnchorRef)
517+
const combinedAnchorRef = useMergedRefs(anchorRef, externalAnchorRef)
518518

519519
const onOpen: AnchoredOverlayProps['onOpen'] = useCallback(
520520
(gesture: Parameters<Exclude<AnchoredOverlayProps['onOpen'], undefined>>[0]) => onOpenChange(true, gesture),

packages/react/src/TextInput/TextInput.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import UnstyledTextInput from '../internal/components/UnstyledTextInput'
1515
import VisuallyHidden from '../_VisuallyHidden'
1616
import {CharacterCounter} from '../utils/character-counter'
1717
import Text from '../Text'
18-
import {useCombinedRefs} from '../hooks'
18+
import {useMergedRefs} from '../hooks'
1919

2020
export type TextInputNonPassthroughProps = {
2121
/** @deprecated Use `leadingVisual` or `trailingVisual` prop instead */
@@ -104,7 +104,7 @@ const TextInput = React.forwardRef<HTMLInputElement, TextInputProps>(
104104
) => {
105105
const [isInputFocused, setIsInputFocused] = useState<boolean>(false)
106106
const inputRef = useRef<HTMLInputElement>(null)
107-
const combinedRef = useCombinedRefs(inputRef, ref)
107+
const mergedRef = useMergedRefs(inputRef, ref)
108108
const [characterCount, setCharacterCount] = useState<string>('')
109109
const [isOverLimit, setIsOverLimit] = useState<boolean>(false)
110110
const [screenReaderMessage, setScreenReaderMessage] = useState<string>('')
@@ -259,7 +259,7 @@ const TextInput = React.forwardRef<HTMLInputElement, TextInputProps>(
259259
{typeof LeadingVisual !== 'string' && isValidElementType(LeadingVisual) ? <LeadingVisual /> : LeadingVisual}
260260
</TextInputInnerVisualSlot>
261261
<UnstyledTextInput
262-
ref={combinedRef}
262+
ref={mergedRef}
263263
disabled={disabled}
264264
onFocus={handleInputFocus}
265265
onBlur={handleInputBlur}

0 commit comments

Comments
 (0)