import { PluginCardVO } from '@/app/home/plugins/components/plugin-installed/PluginCardVO'; import { useState } from 'react'; import { Badge } from '@/components/ui/badge'; import { useTranslation } from 'react-i18next'; import { BugIcon, ExternalLink, Ellipsis, Trash, ArrowUp } from 'lucide-react'; import { getCloudServiceClientSync } from '@/app/infra/http'; import { httpClient } from '@/app/infra/http/HttpClient'; import { Button } from '@/components/ui/button'; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, } from '@/components/ui/dropdown-menu'; import PluginComponentList from '@/app/home/plugins/components/plugin-installed/PluginComponentList'; export default function PluginCardComponent({ cardVO, onCardClick, onDeleteClick, onUpgradeClick, }: { cardVO: PluginCardVO; onCardClick: () => void; onDeleteClick: (cardVO: PluginCardVO) => void; onUpgradeClick: (cardVO: PluginCardVO) => void; }) { const { t } = useTranslation(); const [dropdownOpen, setDropdownOpen] = useState(false); return ( <>
{/* */} plugin icon
{cardVO.author} / {cardVO.name}
{cardVO.label}
v{cardVO.version} {cardVO.debug && ( {t('plugins.debugging')} )} {!cardVO.debug && ( <> {cardVO.install_source === 'github' && ( { e.stopPropagation(); window.open( cardVO.install_info.github_url, '_blank', ); }} > {t('plugins.fromGithub')} )} {cardVO.install_source === 'local' && ( {t('plugins.fromLocal')} )} {cardVO.install_source === 'marketplace' && ( { e.stopPropagation(); window.open( getCloudServiceClientSync().getPluginMarketplaceURL( cardVO.author, cardVO.name, ), '_blank', ); }} > {t('plugins.fromMarketplace')} )} )}
{cardVO.description}
{/**upgrade */} {cardVO.install_source === 'marketplace' && ( { e.stopPropagation(); onUpgradeClick(cardVO); setDropdownOpen(false); }} > {t('plugins.update')} )} { e.stopPropagation(); onDeleteClick(cardVO); setDropdownOpen(false); }} > {t('plugins.delete')}
); }