52 lines
2.0 KiB
TypeScript
52 lines
2.0 KiB
TypeScript
import type { SessionTabKind } from './terminals'
|
||
|
||
/** 工单 state 里存各种会话 id 的字段。 */
|
||
export type SessionIdField = 'sessionId' | 'implementSessionId' | 'reviewSessionId' | 'testSessionId' | 'prototypeSessionId'
|
||
|
||
/**
|
||
* 每种会话对应的 state 字段、中文角色名,以及清除该会话 id 后的后续提示:
|
||
* confirmHint 进确认框,doneHint 进成功 toast。
|
||
*/
|
||
export const SESSION_KINDS: Record<SessionTabKind, { field: SessionIdField, role: string, confirmHint: string, doneHint: string }> = {
|
||
brainstorm: {
|
||
field: 'sessionId',
|
||
role: '头脑风暴',
|
||
confirmHint: '下次续聊会新开会话',
|
||
doneHint: '下次续聊将新开会话',
|
||
},
|
||
implement: {
|
||
field: 'implementSessionId',
|
||
role: '实施',
|
||
confirmHint: '清除后可点 ▶ 重新实施,注意重新实施会删掉远程 feature 分支,别的机器上的实施进度会丢',
|
||
doneHint: '可点 ▶ 重新实施(会删掉远程 feature 分支)',
|
||
},
|
||
review: {
|
||
field: 'reviewSessionId',
|
||
role: '审查',
|
||
confirmHint: '清除后可点 ▶ 新起一个',
|
||
doneHint: '可点 ▶ 新起一个',
|
||
},
|
||
test: {
|
||
field: 'testSessionId',
|
||
role: '测试',
|
||
confirmHint: '清除后可点 ▶ 新起一个',
|
||
doneHint: '可点 ▶ 新起一个',
|
||
},
|
||
prototype: {
|
||
field: 'prototypeSessionId',
|
||
role: '原型',
|
||
confirmHint: '清除后可点 ▶ 新起一个',
|
||
doneHint: '可点 ▶ 新起一个',
|
||
},
|
||
}
|
||
|
||
export function clearSessionConfirmText(issueNumber: number, kind: SessionTabKind, sessionId: string): string {
|
||
const { role, confirmHint } = SESSION_KINDS[kind]
|
||
return `确定清除工单 #${issueNumber} 的${role}会话 id(${sessionId})?只清本机记录,别的机器不受影响;会话文件不删。${confirmHint}。`
|
||
}
|
||
|
||
export function clearSessionDoneText(issueNumber: number, kind: SessionTabKind): string {
|
||
const { role, doneHint } = SESSION_KINDS[kind]
|
||
return `工单 #${issueNumber} 的${role}会话 id 已清除,${doneHint}`
|
||
}
|