'use client'; import { getClassNames } from '@websolutespa/bom-core'; import React, { CSSProperties, useImperativeHandle, useRef } from 'react'; import styled from 'styled-components'; import { Dropdown } from '../../components'; import { useAutocompleteContext } from './autocomplete-context'; type Props = { visible: boolean; className?: string; dropdownStyle?: CSSProperties; disableMatchWidth?: boolean; getPopupContainer?: () => HTMLElement | null; }; type NativeAttrs = Omit, keyof Props>; export type AutocompleteDropdownProps = Props & NativeAttrs; const StyledAutocompleteDropdown = styled.div` max-height: 15rem; overflow-y: auto; overflow-anchor: none; scroll-behavior: smooth; border-radius: var(--border-radius); box-shadow: var(--shadow-xs); background-color: var(--color-neutral-100); `; export const AutocompleteDropdown = React.forwardRef>(({ className = '', dropdownStyle = {}, visible, children, disableMatchWidth, getPopupContainer, }: React.PropsWithChildren, dropdownRef) => { const internalDropdownRef = useRef(null); const { ref } = useAutocompleteContext(); useImperativeHandle(dropdownRef, () => internalDropdownRef.current); const classNames = getClassNames('select-dropdown', className); return ( {children} ); }); AutocompleteDropdown.displayName = 'AutocompleteDropdown';