dify/web/app/components/plugins/plugin-item/action.tsx

65 lines
1.7 KiB
TypeScript
Raw Normal View History

2024-10-10 17:47:04 +08:00
'use client'
import type { FC } from 'react'
import React from 'react'
import { useRouter } from 'next/navigation'
import { RiDeleteBinLine, RiInformation2Line, RiLoopLeftLine } from '@remixicon/react'
2024-10-16 11:30:04 +08:00
import { useBoolean } from 'ahooks'
import PluginInfo from '../plugin-page/plugin-info'
import ActionButton from '../../base/action-button'
2024-10-10 17:47:04 +08:00
type Props = {
pluginId: string
isShowFetchNewVersion: boolean
isShowInfo: boolean
isShowDelete: boolean
onDelete: () => void
}
const Action: FC<Props> = ({
isShowFetchNewVersion,
isShowInfo,
isShowDelete,
onDelete,
}) => {
const router = useRouter()
2024-10-16 11:30:04 +08:00
const [isShowPluginInfo, {
setTrue: showPluginInfo,
setFalse: hidePluginInfo,
}] = useBoolean(false)
2024-10-10 17:47:04 +08:00
const handleFetchNewVersion = () => { }
2024-10-16 11:30:04 +08:00
2024-10-10 17:47:04 +08:00
// const handleDelete = () => { }
return (
<div className='flex space-x-1'>
{isShowFetchNewVersion
&& <div className='p-0.5 cursor-pointer' onClick={handleFetchNewVersion}>
<RiLoopLeftLine className='w-5 h-5 text-text-tertiary' />
</div>
}
{
isShowInfo
2024-10-16 11:30:04 +08:00
&& <ActionButton onClick={showPluginInfo}>
2024-10-10 17:47:04 +08:00
<RiInformation2Line className='w-5 h-5 text-text-tertiary' />
2024-10-16 11:30:04 +08:00
</ActionButton>
2024-10-10 17:47:04 +08:00
}
{
isShowDelete
&& <div className='p-0.5 cursor-pointer' onClick={onDelete}>
<RiDeleteBinLine className='w-5 h-5 text-text-tertiary' />
</div>
}
2024-10-16 11:30:04 +08:00
{isShowPluginInfo && (
<PluginInfo
repository='https://github.com/langgenius/dify-github-plugin'
release='1.2.5'
packageName='notion-sync.difypkg'
onHide={hidePluginInfo}
/>
)}
2024-10-10 17:47:04 +08:00
</div>
)
}
export default React.memo(Action)