加了一堆模型和一堆功能
This commit is contained in:
@@ -40,6 +40,7 @@ interface AppContextValue {
|
||||
deleteSession: (id: string) => void;
|
||||
renameSession: (id: string, title: string) => void;
|
||||
updateSessionTags: (id: string, tags: string[]) => void;
|
||||
updateSessionLlmModel: (id: string, llmModel: string) => void;
|
||||
appendMessage: (sessionId: string, message: ChatMessage) => void;
|
||||
updateSessionThumbnail: (sessionId: string, url: string) => void;
|
||||
|
||||
@@ -183,6 +184,17 @@ export function AppProvider({ children }: { children: ReactNode }) {
|
||||
);
|
||||
}, []);
|
||||
|
||||
const updateSessionLlmModel = useCallback((id: string, llmModel: string) => {
|
||||
setSessions((prev) =>
|
||||
prev.map((s) => {
|
||||
if (s.id !== id) return s;
|
||||
const updated = { ...s, llmModel, updatedAt: Date.now() };
|
||||
storeUpdateSession(updated);
|
||||
return updated;
|
||||
})
|
||||
);
|
||||
}, []);
|
||||
|
||||
const appendMessage = useCallback((sessionId: string, message: ChatMessage) => {
|
||||
setSessions((prev) =>
|
||||
prev.map((s) => {
|
||||
@@ -266,6 +278,7 @@ export function AppProvider({ children }: { children: ReactNode }) {
|
||||
deleteSession: deleteSessionCb,
|
||||
renameSession,
|
||||
updateSessionTags,
|
||||
updateSessionLlmModel,
|
||||
appendMessage,
|
||||
updateSessionThumbnail,
|
||||
tags,
|
||||
@@ -286,7 +299,7 @@ export function AppProvider({ children }: { children: ReactNode }) {
|
||||
[
|
||||
sessions, activeSessionId, activeSession,
|
||||
createSession, switchSession, deleteSessionCb,
|
||||
renameSession, updateSessionTags, appendMessage, updateSessionThumbnail,
|
||||
renameSession, updateSessionTags, updateSessionLlmModel, appendMessage, updateSessionThumbnail,
|
||||
tags, addTag, deleteTagCb, selectedTagIds,
|
||||
assets, addAssetCb, updateAssetCb, deleteAssetCb, toggleFavoriteCb,
|
||||
detailImage, sidebarCollapsed,
|
||||
@@ -294,7 +307,17 @@ export function AppProvider({ children }: { children: ReactNode }) {
|
||||
);
|
||||
|
||||
// 未登录时(如 /login 页面)直接渲染 children,不注入 AppContext
|
||||
if (!initialized) return <>{children}</>;
|
||||
// 已登录但尚未初始化完成时显示加载状态,避免子组件调用 useApp() 拿到 null
|
||||
if (!initialized) {
|
||||
if (isAuthenticated) {
|
||||
return (
|
||||
<div className="h-screen flex items-center justify-center bg-[var(--bg-primary)]">
|
||||
<div className="text-[var(--text-secondary)] text-sm">加载中...</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
return <>{children}</>;
|
||||
}
|
||||
|
||||
return <AppContext.Provider value={value}>{children}</AppContext.Provider>;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user