feat(状态管理): 添加提示词优化 Provider
- 新增 PromptOptimizerProvider 管理优化后提示词状态 - 提供 setOptimizedPrompt 和 consumeOptimizedPrompt 方法 - 实现优化结果到输入框的状态传递 - 导出相关 hooks 和组件
This commit is contained in:
parent
31d227dca9
commit
57bb1ffab7
45
src/providers/PromptOptimizerProvider.tsx
Normal file
45
src/providers/PromptOptimizerProvider.tsx
Normal 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;
|
||||
}
|
||||
@ -1 +1,2 @@
|
||||
export { AuthProvider, useAuth, type AuthUser } from './AuthProvider';
|
||||
export { PromptOptimizerProvider, usePromptOptimizer } from './PromptOptimizerProvider';
|
||||
|
||||
Loading…
Reference in New Issue
Block a user