diff --git a/Parts/DropDown.js b/Parts/DropDown.js index 4779012..e22faae 100644 --- a/Parts/DropDown.js +++ b/Parts/DropDown.js @@ -1,8 +1,10 @@ import React, { cloneElement, isValidElement, useEffect, useImperativeHandle, useRef, useState } from "react"; import { createPopper } from "@popperjs/core"; +import { usePopper } from 'react-popper'; import tw, { styled } from "twin.macro" import "styled-components/macro" + import { colors, colorsDisabled, colorsHover, textColors, textColorsHover } from "./Colors"; const DropDownItem = styled.button(({ type }) => [ @@ -21,15 +23,16 @@ let Dropdown = React.forwardRef(({ children, dropdownCss, onValueChanged, button const [dropdownPopoverShow, setDropdownPopoverShow] = React.useState(false); - const btnDropdownRef = React.createRef(); - const popoverDropdownRef = React.createRef(); + const [btnDropdownRef, setBtnDropdownRef] = React.useState(null); + const [popoverDropdownRef, setPopoverDropdownRef] = React.useState(null); - const openDropdownPopover = () => { - createPopper(btnDropdownRef.current, popoverDropdownRef.current, { - placement: placement ?? "bottom", - ...popper - }); + const { styles, attributes, update } = usePopper(btnDropdownRef, popoverDropdownRef, + { placement: placement ?? "bottom", ...popper }); + + const openDropdownPopover = async () => { setDropdownPopoverShow(true); + console.log(update) + await update(); onValueChanged && onValueChanged(true); }; @@ -39,7 +42,7 @@ let Dropdown = React.forwardRef(({ children, dropdownCss, onValueChanged, button }; function handleOutsideClick(event) { - let node = popoverDropdownRef?.current; + let node = popoverDropdownRef; if (node && !node?.contains(event.target)) { closeDropdownPopover(); } @@ -74,31 +77,34 @@ let Dropdown = React.forwardRef(({ children, dropdownCss, onValueChanged, button return ( <> -