Nikola Milovic
10/23/2021, 4:05 PMval referenceElement = useRef<HTMLElement>(null);
val popperElement = useRef<HTMLElement>(null);
val arrowElement = useRef<HTMLElement>(null);
val popper = usePopper(referenceElement.current,
popperElement.current,
object : UsePopperOptions<dynamic> {
override var modifiers: ReadonlyArray<Modifier<dynamic>> = arrayOf(js(
"{ name : 'arrow', options: {element: arrowElement}}"
))
override var onFirstUpdate: (State) -> Unit = {}
override var placement: Placement = Placement.auto
override var strategy: PositioningStrategy = PositioningStrategy.absolute
})
....
div("bg-blue-500 text-white font-bold") {
attrs.id = "tooltip"
attrs.role = "tooltip"
attrs.style = popper.styles["popper"].toString()
+"Test tooltip"
div {
attrs.id = "arrow"
this.ref = arrowElement
attrs.style = popper.styles["arrow"].toString()
}
}
turansky
10/23/2021, 4:11 PMjso
factory method
a. object:
- prohibited (for all props)
2. You need useRefState
hook for element change detection (JS example)
cc @Sergei Grishchenkoturansky
11/20/2021, 1:36 PMturansky
11/20/2021, 2:30 PM