🎨 style(vscode): eslint 自动修复格式与排序
Claude-Session: https://claude.ai/code/session_01HTMgwaE3woqM5yvsHiuSAa
This commit is contained in:
1 parent
df35bcfd49
commit
8c22a29ce5
41 files changed
+248
-167
No files matched your search
@@ -1,11 +1,11 @@
|
||||
import type { ReactNode } from 'react'
|
||||
import { useMemo, useRef } from 'react'
|
||||
import { ArrowRightLeft, CircleSlash, Download, ExternalLink, GitMerge, Loader2, Play, RotateCcw, Terminal, Trash2, X } from 'lucide-react'
|
||||
import type { ClaudeProfile } from '../hooks/useIssues'
|
||||
import type { Issue, IssueColumn } from '../types'
|
||||
import { COLUMN_LABELS, COLUMN_ORDER } from '../types'
|
||||
import { isIssueLocked } from '../lib/dependencies'
|
||||
import type { PropertyGroup } from './property-grid'
|
||||
import { ArrowRightLeft, CircleSlash, Download, ExternalLink, GitMerge, Loader2, Play, RotateCcw, Terminal, Trash2, X } from 'lucide-react'
|
||||
import { useMemo, useRef } from 'react'
|
||||
import { isIssueLocked } from '../lib/dependencies'
|
||||
import { COLUMN_LABELS, COLUMN_ORDER } from '../types'
|
||||
import { PropertyGrid } from './property-grid'
|
||||
|
||||
/** 跨机绝对路径只比 basename(同名 .json)映射到本机 profiles 列表。 */
|
||||
@@ -37,14 +37,20 @@ interface IssueDetailPanelProps {
|
||||
globalAutoReview: boolean
|
||||
onOpenInBrowser: (url: string) => void
|
||||
onResumeSession: (sessionId: string, profilePath?: string, cwd?: string, issueNumber?: number) => void
|
||||
/** Open a new terminal that runs `codex resume <id>` for the auto-review
|
||||
* conversation associated with this issue. */
|
||||
/**
|
||||
* Open a new terminal that runs `codex resume <id>` for the auto-review
|
||||
* conversation associated with this issue.
|
||||
*/
|
||||
onResumeReviewSession: (sessionId: string, issueNumber: number, cwd?: string) => void
|
||||
/** Open a new terminal that runs `claude --resume <id>` for the test
|
||||
* conversation associated with this issue. */
|
||||
/**
|
||||
* Open a new terminal that runs `claude --resume <id>` for the test
|
||||
* conversation associated with this issue.
|
||||
*/
|
||||
onResumeTestSession: (sessionId: string, issueNumber: number, cwd?: string) => void
|
||||
/** Spawn a fresh "测试" cc tab for an issue whose PR has merged. Bound to the
|
||||
* Play button next to the "测试会话 id" row (only shown when `issue.pr` exists). */
|
||||
/**
|
||||
* Spawn a fresh "测试" cc tab for an issue whose PR has merged. Bound to the
|
||||
* Play button next to the "测试会话 id" row (only shown when `issue.pr` exists).
|
||||
*/
|
||||
onStartTestSession: (issueNumber: number) => void
|
||||
/** Open a workspace-relative file in the editor. */
|
||||
onOpenFile: (path: string) => void
|
||||
@@ -60,23 +66,31 @@ interface IssueDetailPanelProps {
|
||||
onOpenWorktree: (path: string) => void
|
||||
/** Delete the worktree (`git worktree remove`) and clear it from state. */
|
||||
onDeleteWorktree: (issueNumber: number, path: string) => void
|
||||
/** Pre-merge the issue's feature branch into the main worktree's current branch
|
||||
* (`git merge --no-commit --no-ff <branch>`) so the user can inspect locally. */
|
||||
/**
|
||||
* Pre-merge the issue's feature branch into the main worktree's current branch
|
||||
* (`git merge --no-commit --no-ff <branch>`) so the user can inspect locally.
|
||||
*/
|
||||
onMergeBranch: (issueNumber: number, branch: string) => void
|
||||
/** 硬删整个工单 + 关联资源(worktree / PR / feature branch / cc tabs)。
|
||||
* 顶部垃圾桶按钮触发,扩展端做 modal confirm,可选。 */
|
||||
/**
|
||||
* 硬删整个工单 + 关联资源(worktree / PR / feature branch / cc tabs)。
|
||||
* 顶部垃圾桶按钮触发,扩展端做 modal confirm,可选。
|
||||
*/
|
||||
onDeleteIssue?: (issueNumber: number) => void
|
||||
/** 关闭 Gitea 工单,不清理本地会话、worktree、PR 或分支。 */
|
||||
onCloseIssue: (issueNumber: number) => void
|
||||
/** 将实施中 / 审查中的工单重置回待办(清 worktree / 未合并 PR / feature 分支)。 */
|
||||
onResetToTodo: (issueNumber: number) => void
|
||||
/** Close the matching session terminal tab. The extension watches
|
||||
/**
|
||||
* Close the matching session terminal tab. The extension watches
|
||||
* onDidCloseTerminal and clears the corresponding `*TabOpen` flag, which
|
||||
* makes the X button vanish on its own. */
|
||||
* makes the X button vanish on its own.
|
||||
*/
|
||||
onCloseSessionTab: (issueNumber: number, kind: 'brainstorm' | 'implement' | 'review' | 'test') => void
|
||||
/** Spawn a fresh "规划" cc tab for an issue whose sessionId is still empty
|
||||
/**
|
||||
* Spawn a fresh "规划" cc tab for an issue whose sessionId is still empty
|
||||
* (created out-of-band via spx without webhook linking). Bound to the Play
|
||||
* button next to the "头脑风暴会话 id" row. */
|
||||
* button next to the "头脑风暴会话 id" row.
|
||||
*/
|
||||
onStartBrainstormSession: (issueNumber: number) => void
|
||||
/** Persist a per-issue `autoReview` override into the state JSON. */
|
||||
onUpdateAutoReview: (issueNumber: number, value: boolean) => void
|
||||
@@ -649,7 +663,11 @@ export function IssueDetailPanel({
|
||||
|
||||
{issue.source === 'youtrack' && issue.attachments && issue.attachments.length > 0 && (
|
||||
<div className="flex flex-col gap-1 text-xs">
|
||||
<span className="opacity-60">附件({issue.attachments.length})</span>
|
||||
<span className="opacity-60">
|
||||
附件(
|
||||
{issue.attachments.length}
|
||||
)
|
||||
</span>
|
||||
<div className="flex flex-wrap gap-2">
|
||||
{issue.attachments.map(att => (
|
||||
<button
|
||||
|
||||
Reference in new issue
Block a user