Skip to content

Commit 259c219

Browse files
authored
Merge pull request RooCodeInc#1097 from System233/patch-setting-done
Fix settings done button with unsaved changes
2 parents 6ae11dd + 7d58fe7 commit 259c219

File tree

3 files changed

+10
-21
lines changed

3 files changed

+10
-21
lines changed

.changeset/twenty-rice-own.md

Lines changed: 0 additions & 5 deletions
This file was deleted.

webview-ui/src/App.tsx

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -28,16 +28,13 @@ const App = () => {
2828
const [tab, setTab] = useState<Tab>("chat")
2929
const settingsRef = useRef<SettingsViewRef>(null)
3030

31-
const switchTab = useCallback(
32-
(newTab: Tab) => {
33-
if (tab === "settings" && settingsRef.current?.checkUnsaveChanges) {
34-
settingsRef.current.checkUnsaveChanges(() => setTab(newTab))
35-
} else {
36-
setTab(newTab)
37-
}
38-
},
39-
[tab],
40-
)
31+
const switchTab = useCallback((newTab: Tab) => {
32+
if (settingsRef.current?.checkUnsaveChanges) {
33+
settingsRef.current.checkUnsaveChanges(() => setTab(newTab))
34+
} else {
35+
setTab(newTab)
36+
}
37+
}, [])
4138

4239
const onMessage = useCallback(
4340
(e: MessageEvent) => {
@@ -73,7 +70,7 @@ const App = () => {
7370
<WelcomeView />
7471
) : (
7572
<>
76-
{tab === "settings" && <SettingsView ref={settingsRef} onDone={() => switchTab("chat")} />}
73+
{tab === "settings" && <SettingsView ref={settingsRef} onDone={() => setTab("chat")} />}
7774
{tab === "history" && <HistoryView onDone={() => switchTab("chat")} />}
7875
{tab === "mcp" && <McpView onDone={() => switchTab("chat")} />}
7976
{tab === "prompts" && <PromptsView onDone={() => switchTab("chat")} />}

webview-ui/src/components/settings/SettingsView.tsx

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,7 @@ const SettingsView = forwardRef<SettingsViewRef, SettingsViewProps>(({ onDone },
173173
text: currentApiConfigName,
174174
apiConfiguration,
175175
})
176+
// onDone()
176177
setChangeDetected(false)
177178
}
178179
}
@@ -216,11 +217,7 @@ const SettingsView = forwardRef<SettingsViewRef, SettingsViewProps>(({ onDone },
216217

217218
const onConfirmDialogResult = useCallback((confirm: boolean) => {
218219
if (confirm) {
219-
setChangeDetected(false)
220-
// Wait for the change detection to be updated
221-
setTimeout(() => {
222-
confirmDialogHandler.current?.()
223-
}, 100)
220+
confirmDialogHandler.current?.()
224221
}
225222
}, [])
226223

0 commit comments

Comments
 (0)