diff --git a/src/app/repo/components/RepoCard.tsx b/src/app/repo/components/RepoCard.tsx index 8d7a592..44d7f70 100644 --- a/src/app/repo/components/RepoCard.tsx +++ b/src/app/repo/components/RepoCard.tsx @@ -13,7 +13,7 @@ import { PopoverContent, PopoverTrigger, } from '@/components/ui/popover' -import { Star, GitFork, FileText, Edit, FolderGit2, MoreVertical, FileText as IssueIcon, Settings, Play, Trash2, RefreshCw, BookOpen, Copy, Clock, Info } from 'lucide-react' +import { Star, GitFork, FileText, Edit, FolderGit2, MoreVertical, FileText as IssueIcon, Settings, Play, Trash2, RefreshCw, BookOpen, Copy, Clock, Info, Eye, Square } from 'lucide-react' import { useRepoStore } from '../store' import { useMemo, useState } from 'react' import { myOrgs } from '../store/build' @@ -32,7 +32,7 @@ interface RepoCardProps { export function RepoCard({ repo, onStartWorkspace, onEdit, onIssue, onSettings, onDelete, onSync }: RepoCardProps) { const [deletePopoverOpen, setDeletePopoverOpen] = useState(false) - const { workspaceList, getWorkspaceDetail, getList, buildUpdate } = useRepoStore(); + const { workspaceList, getWorkspaceDetail, getList, buildUpdate, stopWorkspace } = useRepoStore(); const workspace = useMemo(() => { return workspaceList.find(ws => ws.slug === repo.path) }, [workspaceList, repo.path]) @@ -97,6 +97,30 @@ export function RepoCard({ repo, onStartWorkspace, onEdit, onIssue, onSettings, )}
+ {isWorkspaceActive && ( + + + { + // TODO: 实现停止工作区逻辑 + stopWorkspace() + }} + className="h-8 w-8 p-0 border-neutral-200 hover:border-red-600 hover:bg-red-600 hover:text-white transition-all cursor-pointer" + > + + + } + /> + +

停止工作区

+
+
+
+ )} onStartWorkspace(repo)} + onClick={() => { + if (!isWorkspaceActive) { + onStartWorkspace(repo) + } else { + getWorkspaceDetail(workspace) + } + + }} className="h-8 w-8 p-0 border-neutral-200 hover:border-neutral-900 hover:bg-neutral-900 hover:text-white transition-all cursor-pointer" > - + {isWorkspaceActive ? : } } /> -

启动工作区

+

{isWorkspaceActive ? '查看工作区' : '启动工作区'}