(props: DisclosureProps)
| 17 | } |
| 18 | |
| 19 | export function Disclosure(props: DisclosureProps) { |
| 20 | let state = useDisclosureState(props); |
| 21 | let panelRef = useRef<HTMLDivElement>(null); |
| 22 | let buttonRef = useRef<HTMLButtonElement>(null); |
| 23 | /*- begin highlight -*/ |
| 24 | let {buttonProps, panelProps} = useDisclosure(props, state, panelRef); |
| 25 | /*- end highlight -*/ |
| 26 | let {buttonProps: pressProps, isPressed} = useButton(buttonProps, buttonRef); |
| 27 | let {hoverProps, isHovered} = useHover({}); |
| 28 | let {focusProps, isFocusVisible} = useFocusRing(); |
| 29 | |
| 30 | return ( |
| 31 | <div className="react-aria-Disclosure" data-expanded={state.isExpanded || undefined}> |
| 32 | <h3 className="react-aria-Heading"> |
| 33 | <button |
| 34 | {...mergeProps(pressProps, hoverProps, focusProps)} |
| 35 | ref={buttonRef} |
| 36 | slot="trigger" |
| 37 | className="disclosure-button" |
| 38 | data-pressed={isPressed || undefined} |
| 39 | data-hovered={isHovered || undefined} |
| 40 | data-focus-visible={isFocusVisible || undefined} |
| 41 | data-disabled={props.isDisabled || undefined}> |
| 42 | <ChevronRight size={16} /> |
| 43 | <span>{props.title}</span> |
| 44 | </button> |
| 45 | </h3> |
| 46 | <div {...panelProps} ref={panelRef} className="react-aria-DisclosurePanel"> |
| 47 | <div>{props.children}</div> |
| 48 | </div> |
| 49 | </div> |
| 50 | ); |
| 51 | } |
nothing calls this directly
no test coverage detected