diff --git a/packages/ui/components/form/selectimproved/components/Select.tsx b/packages/ui/components/form/selectimproved/components/Select.tsx index 8db99e6e06..81f08bc926 100755 --- a/packages/ui/components/form/selectimproved/components/Select.tsx +++ b/packages/ui/components/form/selectimproved/components/Select.tsx @@ -1,8 +1,7 @@ +import * as Popover from "@radix-ui/react-popover"; import React, { useCallback, useRef, useState } from "react"; import { classNames as cn } from "@calcom/lib"; -import { useKeyPress } from "@calcom/lib/hooks/useKeyPress"; -import useOnClickOutside from "@calcom/lib/hooks/useOnclickOutside"; import { FiX, FiChevronDown } from "../../../icon"; import Options from "./Options"; @@ -55,41 +54,12 @@ function Select({ menuIsOpen = false, classNames, }: SelectProps) { - const [open, setOpen] = useState(menuIsOpen); const [inputValue, setInputValue] = useState(""); - const ref = useRef(null); + const [open, setOpen] = useState(menuIsOpen); const searchBoxRef = useRef(null); const isMultipleValue = Array.isArray(selectedItems) && isMultiple; - const toggle = useCallback(() => { - if (!isDisabled) { - setOpen(!open); - } - }, [isDisabled, open]); - - const closeDropDown = useCallback(() => { - if (open) setOpen(false); - }, [open]); - - useOnClickOutside(ref, () => { - closeDropDown(); - }); - - useKeyPress("Escape", undefined, () => { - closeDropDown(); - }); - - const onPressEnterOrSpace = useCallback( - (e: React.KeyboardEvent) => { - e.preventDefault(); - if ((e.code === "Enter" || e.code === "Space") && !isDisabled) { - toggle(); - } - }, - [isDisabled, toggle] - ); - const removeItem = useCallback( (item: Option) => { // remove the item from the selected items @@ -103,6 +73,11 @@ function Select({ [onChange, selectedItems] ); + const closeDropDown = useCallback(() => { + console.log({ open }); + if (open) setOpen(false); + }, [open]); + const handleValueChange = useCallback( (selected: Option) => { function update() { @@ -148,106 +123,108 @@ function Select({ }} selectedItems={selectedItems} handleValueChange={handleValueChange}> -
-
-
- <> - {((isMultipleValue && selectedItems.length === 0) || selectedItems === null) && ( -
-

{placeholder}

-
- )} - - {Array.isArray(selectedItems) ? ( -
- {selectedItems.map((item, index) => ( -
-

- {item.label} -

- {!isDisabled && ( - - )} +
+ + +
+
+ <> + {((isMultipleValue && selectedItems.length === 0) || selectedItems === null) && ( +
+

{placeholder}

- ))} -
- ) : ( -
-

{selectedItems?.label}

-
- )} - -
+ )} -
- {isClearable && !isDisabled && selectedItems !== null && ( -
- + {selectedItems.map((item, index) => ( +
+

+ {item.label} +

+ {!isDisabled && ( + + )} +
+ ))} +
+ ) : ( +
+

{selectedItems?.label}

+
+ )} + +
+ +
+ <> + {isClearable && !isDisabled && selectedItems !== null && ( +
+ +
+ )} + + + +
+
+ + + +
+ {isSearchable && ( + setInputValue(e.target.value)} + /> + )} + +
- )} - - -
-
- - {open && !isDisabled && ( -
- {isSearchable && ( - setInputValue(e.target.value)} - /> - )} - - -
- )} + + +
); diff --git a/packages/ui/components/layout/spacing.stories.mdx b/packages/ui/components/layout/spacing.stories.mdx index 8d8d63ed1b..3832920e6b 100644 --- a/packages/ui/components/layout/spacing.stories.mdx +++ b/packages/ui/components/layout/spacing.stories.mdx @@ -14,7 +14,6 @@ import { import { Tooltip } from "../tooltip"; import { FiPlus, FiX } from "../icon"; -import { Flex } from "./Flex";