背景
sparkle-design-internal の PopoverTriggerButton は、公開 Button が forwardRef 非対応のため Button asChild + PopoverPrimitive.Trigger の workaround を使っています(PR goodpatch/sparkle-design-internal#182)。
同様に Radix Trigger asChild と Sparkle Button を直接合成したい利用パターンが増える見込みです。
提案
Button を React.forwardRef<HTMLButtonElement, ButtonProps> でラップし、ref を DOM の <button> に渡せるようにしてください。
社内側の暫定対応
PopoverTriggerButton で Button asChild + 内部 PopoverPrimitive.Trigger を維持
- 本 issue 対応後に workaround を削除できるよう
TODO(sparkle-design#XXX) をコードに残します
関連
- goodpatch/sparkle-design-internal#182(Popover)
- sparkle-design#263(
useMergeRefs 共通化・別件)
背景
sparkle-design-internalのPopoverTriggerButtonは、公開ButtonがforwardRef非対応のためButton asChild+PopoverPrimitive.Triggerの workaround を使っています(PR goodpatch/sparkle-design-internal#182)。同様に Radix
Trigger asChildと SparkleButtonを直接合成したい利用パターンが増える見込みです。提案
ButtonをReact.forwardRef<HTMLButtonElement, ButtonProps>でラップし、ref を DOM の<button>に渡せるようにしてください。社内側の暫定対応
PopoverTriggerButtonでButton asChild+ 内部PopoverPrimitive.Triggerを維持TODO(sparkle-design#XXX)をコードに残します関連
useMergeRefs共通化・別件)