'use client' import { cn } from '@langgenius/dify-ui/cn' import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, } from '@langgenius/dify-ui/dropdown-menu' import * as React from 'react' import { useTranslation } from 'react-i18next' import { Pin02 } from '../../base/icons/src/vender/line/general' import s from './style.module.css' type IItemOperationProps = { className?: string itemName: string isPinned: boolean isShowRenameConversation?: boolean onRenameConversation?: () => void isShowDelete: boolean togglePin: () => void onDelete: () => void } function ItemOperation({ className, itemName, isPinned, togglePin, isShowRenameConversation, onRenameConversation, isShowDelete, onDelete, }: IItemOperationProps) { const { t } = useTranslation('explore') const { t: tCommon } = useTranslation('common') return ( $['operation.moreActionsFor'], { name: itemName })} className={cn( 'group/operation flex size-6 items-center justify-center rounded-md border-none p-0 text-text-tertiary transition-colors group-focus-within:bg-components-actionbar-bg! group-hover:bg-components-actionbar-bg! hover:bg-state-base-hover focus-visible:bg-state-base-hover focus-visible:ring-2 focus-visible:ring-state-accent-solid focus-visible:outline-hidden data-popup-open:bg-components-actionbar-bg! data-popup-open:shadow-none!', className, )} onClick={(e) => { e.stopPropagation() }} > { e.stopPropagation() togglePin() }} > {isPinned ? t(($) => $['sidebar.action.unpin']) : t(($) => $['sidebar.action.pin'])} {isShowRenameConversation && ( { e.stopPropagation() onRenameConversation?.() }} > {t(($) => $['sidebar.action.rename'])} )} {isShowDelete && ( { e.stopPropagation() onDelete() }} > {t(($) => $['sidebar.action.delete'])} )} ) } export default React.memo(ItemOperation)