'use client' import React, { FC, useState } from 'react' import PortalToFollowElem from '../portal-to-follow-elem' import { ChevronDownIcon, CheckIcon } from '@heroicons/react/24/outline' import cn from 'classnames' export interface ISelectProps { value: T items: { value: T, name: string }[] onChange: (value: T) => void } const Select: FC> = ({ value, items, onChange }) => { const [controlHide, setControlHide] = useState(0) const itemsElement = items.map(item => { const isSelected = item.value === value return (
{ onChange(item.value) setControlHide(Date.now()) }} > {isSelected && (
)} {item.name}
) }) return (
{itemsElement}
)} controlHide={controlHide} >
{items.find(i => i.value === value)?.name}
{/*
{itemsElement}
*/}
) } export default React.memo(Select)