dify/web/app/components/base/prompt-editor/plugins/component-picker-block/prompt-option.tsx
Whitewater 0046ef7707
refactor: revamp picker block (#4227)
Co-authored-by: crazywoola <100913391+crazywoola@users.noreply.github.com>
2024-07-08 21:56:09 +08:00

46 lines
1.0 KiB
TypeScript

import { memo } from 'react'
type PromptMenuItemMenuItemProps = {
icon: JSX.Element
title: string
disabled?: boolean
isSelected: boolean
onClick: () => void
onMouseEnter: () => void
setRefElement?: (element: HTMLDivElement) => void
}
export const PromptMenuItem = memo(({
icon,
title,
disabled,
isSelected,
onClick,
onMouseEnter,
setRefElement,
}: PromptMenuItemMenuItemProps) => {
return (
<div
className={`
flex items-center px-3 h-6 cursor-pointer hover:bg-gray-50 rounded-md
${isSelected && !disabled && '!bg-gray-50'}
${disabled ? 'cursor-not-allowed opacity-30' : 'hover:bg-gray-50 cursor-pointer'}
`}
tabIndex={-1}
ref={setRefElement}
onMouseEnter={() => {
if (disabled)
return
onMouseEnter()
}}
onClick={() => {
if (disabled)
return
onClick()
}}>
{icon}
<div className='ml-1 text-[13px] text-gray-900'>{title}</div>
</div>
)
})
PromptMenuItem.displayName = 'PromptMenuItem'