| | |
| | | |
| | | export type Item = { |
| | | value: string | number |
| | | text: string | React.JSX.Element |
| | | text: string | JSX.Element |
| | | } |
| | | type DropdownProps = { |
| | | items: Item[] |
| | |
| | | : ( |
| | | <div |
| | | className={` |
| | | flex h-6 w-6 cursor-pointer items-center justify-center rounded-md |
| | | ${open && 'bg-divider-regular'} |
| | | flex items-center justify-center w-6 h-6 cursor-pointer rounded-md |
| | | ${open && 'bg-black/5'} |
| | | `} |
| | | > |
| | | <RiMoreFill className='h-4 w-4 text-text-tertiary' /> |
| | | <RiMoreFill className='w-4 h-4 text-gray-500' /> |
| | | </div> |
| | | ) |
| | | } |
| | | </PortalToFollowElemTrigger> |
| | | <PortalToFollowElemContent className={popupClassName}> |
| | | <div className='rounded-lg border-[0.5px] border-components-panel-border bg-components-panel-bg text-sm text-text-secondary shadow-lg'> |
| | | <div className='rounded-lg border-[0.5px] border-gray-200 bg-white shadow-lg text-sm text-gray-700'> |
| | | { |
| | | !!items.length && ( |
| | | <div className='p-1'> |
| | |
| | | items.map(item => ( |
| | | <div |
| | | key={item.value} |
| | | className='flex h-8 cursor-pointer items-center rounded-lg px-3 hover:bg-components-panel-on-panel-item-bg-hover' |
| | | className='flex items-center px-3 h-8 rounded-lg cursor-pointer hover:bg-gray-100' |
| | | onClick={() => handleSelect(item)} |
| | | > |
| | | {item.text} |
| | |
| | | } |
| | | { |
| | | (!!items.length && !!secondItems?.length) && ( |
| | | <div className='h-[1px] bg-divider-regular' /> |
| | | <div className='h-[1px] bg-gray-100' /> |
| | | ) |
| | | } |
| | | { |
| | |
| | | secondItems.map(item => ( |
| | | <div |
| | | key={item.value} |
| | | className='flex h-8 cursor-pointer items-center rounded-lg px-3 hover:bg-components-panel-on-panel-item-bg-hover' |
| | | className='flex items-center px-3 h-8 rounded-lg cursor-pointer hover:bg-gray-100' |
| | | onClick={() => handleSelect(item)} |
| | | > |
| | | {item.text} |