Просмотр исходного кода

Fix settings done button with unsaved changes

System233 10 месяцев назад
Родитель
Сommit
7d58fe76bb
1 измененных файлов с 8 добавлено и 11 удалено
  1. 8 11
      webview-ui/src/App.tsx

+ 8 - 11
webview-ui/src/App.tsx

@@ -28,16 +28,13 @@ const App = () => {
 	const [tab, setTab] = useState<Tab>("chat")
 	const settingsRef = useRef<SettingsViewRef>(null)
 
-	const switchTab = useCallback(
-		(newTab: Tab) => {
-			if (tab === "settings" && settingsRef.current?.checkUnsaveChanges) {
-				settingsRef.current.checkUnsaveChanges(() => setTab(newTab))
-			} else {
-				setTab(newTab)
-			}
-		},
-		[tab],
-	)
+	const switchTab = useCallback((newTab: Tab) => {
+		if (settingsRef.current?.checkUnsaveChanges) {
+			settingsRef.current.checkUnsaveChanges(() => setTab(newTab))
+		} else {
+			setTab(newTab)
+		}
+	}, [])
 
 	const onMessage = useCallback(
 		(e: MessageEvent) => {
@@ -73,7 +70,7 @@ const App = () => {
 		<WelcomeView />
 	) : (
 		<>
-			{tab === "settings" && <SettingsView ref={settingsRef} onDone={() => switchTab("chat")} />}
+			{tab === "settings" && <SettingsView ref={settingsRef} onDone={() => setTab("chat")} />}
 			{tab === "history" && <HistoryView onDone={() => switchTab("chat")} />}
 			{tab === "mcp" && <McpView onDone={() => switchTab("chat")} />}
 			{tab === "prompts" && <PromptsView onDone={() => switchTab("chat")} />}