'use client' import type { FC } from 'react' import React from 'react' import { useRouter } from 'next/navigation' import { RiDeleteBinLine, RiInformation2Line, RiLoopLeftLine } from '@remixicon/react' import { useBoolean } from 'ahooks' import { useTranslation } from 'react-i18next' import PluginInfo from '../plugin-page/plugin-info' import ActionButton from '../../base/action-button' import Tooltip from '../../base/tooltip' import Confirm from '../../base/confirm' const i18nPrefix = 'plugin.action' type Props = { pluginId: string pluginName: string usedInApps: number isShowFetchNewVersion: boolean isShowInfo: boolean isShowDelete: boolean onDelete: () => void } const Action: FC = ({ pluginName, usedInApps, isShowFetchNewVersion, isShowInfo, isShowDelete, onDelete, }) => { const { t } = useTranslation() const router = useRouter() const [isShowPluginInfo, { setTrue: showPluginInfo, setFalse: hidePluginInfo, }] = useBoolean(false) const handleFetchNewVersion = () => { } const [isShowDeleteConfirm, { setTrue: showDeleteConfirm, setFalse: hideDeleteConfirm, }] = useBoolean(false) // const handleDelete = () => { } return (
{/* Only plugin installed from GitHub need to check if it's the new version */} {isShowFetchNewVersion && ( ) } { isShowInfo && ( ) } { isShowDelete && ( ) } {isShowPluginInfo && ( )} { isShowDeleteConfirm && ( {t(`${i18nPrefix}.deleteContentLeft`)}{pluginName}{t(`${i18nPrefix}.deleteContentRight`)}
{usedInApps > 0 && t(`${i18nPrefix}.usedInApps`, { num: usedInApps })}
} onCancel={hideDeleteConfirm} onConfirm={onDelete} /> ) } ) } export default React.memo(Action)