️(frontend) focus first background effect button on panel open

improves keyboard navigation by placing focus on first actionable element
This commit is contained in:
Cyril
2025-12-17 09:28:11 +01:00
committed by aleb_the_flash
parent 41db3e766b
commit bbc7fa8012

View File

@@ -1,10 +1,10 @@
import { forwardRef, ReactNode } from 'react'
import { import {
ToggleButton as RACToggleButton, ToggleButton as RACToggleButton,
ToggleButtonProps as RACToggleButtonProps, ToggleButtonProps as RACToggleButtonProps,
} from 'react-aria-components' } from 'react-aria-components'
import { type ButtonRecipeProps, buttonRecipe } from './buttonRecipe' import { type ButtonRecipeProps, buttonRecipe } from './buttonRecipe'
import { TooltipWrapper, TooltipWrapperProps } from './TooltipWrapper' import { TooltipWrapper, TooltipWrapperProps } from './TooltipWrapper'
import { ReactNode } from 'react'
export type ToggleButtonProps = RACToggleButtonProps & export type ToggleButtonProps = RACToggleButtonProps &
ButtonRecipeProps & ButtonRecipeProps &
@@ -16,16 +16,14 @@ export type ToggleButtonProps = RACToggleButtonProps &
/** /**
* React aria ToggleButton with our button styles, that can take a tooltip if needed * React aria ToggleButton with our button styles, that can take a tooltip if needed
*/ */
export const ToggleButton = ({ export const ToggleButton = forwardRef<HTMLButtonElement, ToggleButtonProps>(
tooltip, ({ tooltip, tooltipType, ...props }, ref) => {
tooltipType,
...props
}: ToggleButtonProps) => {
const [variantProps, componentProps] = buttonRecipe.splitVariantProps(props) const [variantProps, componentProps] = buttonRecipe.splitVariantProps(props)
return ( return (
<TooltipWrapper tooltip={tooltip} tooltipType={tooltipType}> <TooltipWrapper tooltip={tooltip} tooltipType={tooltipType}>
<RACToggleButton <RACToggleButton
ref={ref}
{...componentProps} {...componentProps}
className={[buttonRecipe(variantProps), props.className].join(' ')} className={[buttonRecipe(variantProps), props.className].join(' ')}
> >
@@ -37,3 +35,6 @@ export const ToggleButton = ({
</TooltipWrapper> </TooltipWrapper>
) )
} }
)
ToggleButton.displayName = 'ToggleButton'