feat(状态管理): 添加提示词优化 Provider

- 新增 PromptOptimizerProvider 管理优化后提示词状态
- 提供 setOptimizedPrompt 和 consumeOptimizedPrompt 方法
- 实现优化结果到输入框的状态传递
- 导出相关 hooks 和组件
This commit is contained in:
gaoziman 2025-12-22 00:07:46 +08:00
parent 31d227dca9
commit 57bb1ffab7
2 changed files with 46 additions and 0 deletions

View File

@ -0,0 +1,45 @@
'use client';
import { createContext, useContext, useState, useCallback, type ReactNode } from 'react';
interface PromptOptimizerContextType {
// 优化后的提示词(用于填入输入框)
optimizedPrompt: string | null;
// 设置优化后的提示词
setOptimizedPrompt: (prompt: string | null) => void;
// 消费优化后的提示词(获取后清空)
consumeOptimizedPrompt: () => string | null;
}
const PromptOptimizerContext = createContext<PromptOptimizerContextType | null>(null);
export function PromptOptimizerProvider({ children }: { children: ReactNode }) {
const [optimizedPrompt, setOptimizedPrompt] = useState<string | null>(null);
// 消费优化后的提示词(获取后清空,避免重复使用)
const consumeOptimizedPrompt = useCallback(() => {
const prompt = optimizedPrompt;
setOptimizedPrompt(null);
return prompt;
}, [optimizedPrompt]);
return (
<PromptOptimizerContext.Provider
value={{
optimizedPrompt,
setOptimizedPrompt,
consumeOptimizedPrompt,
}}
>
{children}
</PromptOptimizerContext.Provider>
);
}
export function usePromptOptimizer() {
const context = useContext(PromptOptimizerContext);
if (!context) {
throw new Error('usePromptOptimizer must be used within a PromptOptimizerProvider');
}
return context;
}

View File

@ -1 +1,2 @@
export { AuthProvider, useAuth, type AuthUser } from './AuthProvider';
export { PromptOptimizerProvider, usePromptOptimizer } from './PromptOptimizerProvider';