/** * 提示词管理器 - 简洁风格 */ import { PromptSidebar } from './PromptSidebar'; import { usePrompts } from '../hooks/usePrompts'; import type { RoleType, SharedModuleType } from '../types/api'; import { useI18n } from '../i18n'; // ============================================================================ // 配置 // ============================================================================ interface Props { isOpen: boolean; onClose: () => void; } export function PromptsManager({ isOpen, onClose }: Props) { const { t } = useI18n(); const { isLoading, selection, setSelection, getCurrentContent, setCurrentContent, restoreCurrent, hasOverride } = usePrompts(); // 获取当前标题 const getTitle = () => { const roleLabels: Record = { problemFraming: t('prompts.role.problemFraming'), conceptDesigner: t('prompts.role.conceptDesigner'), codeGeneration: t('prompts.role.codeGeneration'), codeRetry: t('prompts.role.codeRetry'), codeEdit: t('prompts.role.codeEdit') }; const sharedLabels: Record = { apiIndex: t('prompts.shared.apiIndex'), specification: t('prompts.shared.specification') }; if (selection.kind === 'role') { const roleLabel = roleLabels[selection.role]; return selection.promptType === 'system' ? t('prompts.role.systemTitle', { role: roleLabel }) : t('prompts.role.userTitle', { role: roleLabel }); } return sharedLabels[selection.module]; }; // 获取当前描述 const getDescription = () => { if (selection.kind === 'role') { if (selection.promptType === 'system') { return t('prompts.role.systemDescription'); } return t('prompts.role.userDescription'); } return selection.module === 'apiIndex' ? t('prompts.shared.apiIndexDescription') : t('prompts.shared.specificationDescription'); }; if (!isOpen) return null; const content = getCurrentContent(); const isModified = hasOverride(); return (
{/* 顶栏 */}
{t('prompts.title')}
{/* 修改状态 + 恢复按钮 */}
{isModified && ( <> {t('prompts.modified')} )}
{/* 主内容 */}
{/* 侧边栏 */} {/* 编辑区 */}
{/* 标题区 */}

{getTitle()}

{getDescription()}

{/* 编辑器 */}
{isLoading ? (
{t('common.loading')}
) : (