diff --git a/frontend/src/components/config/index.tsx b/frontend/src/components/config/index.tsx index 91c89e6bd..fb7d8f673 100644 --- a/frontend/src/components/config/index.tsx +++ b/frontend/src/components/config/index.tsx @@ -61,24 +61,25 @@ export const ConfigLayout = < )} {selector} {changesMade && ( - - )} - {changesMade && ( - onConfirm()} - disabled={disabled} - file_contents_language={file_contents_language} - /> + <> + + onConfirm()} + disabled={disabled} + file_contents_language={file_contents_language} + key_listener + /> + )} } @@ -309,6 +310,30 @@ export const Config = ({ ) )} + {changesMade && ( +
+
+ Unsaved changes + +
+ + +
+ )} diff --git a/frontend/src/components/config/util.tsx b/frontend/src/components/config/util.tsx index 1d3f084cf..d96decd84 100644 --- a/frontend/src/components/config/util.tsx +++ b/frontend/src/components/config/util.tsx @@ -600,6 +600,7 @@ interface ConfirmUpdateProps { disabled: boolean; language?: MonacoLanguage; file_contents_language?: MonacoLanguage; + key_listener?: boolean; } export function ConfirmUpdate({ @@ -610,9 +611,11 @@ export function ConfirmUpdate({ disabled, language, file_contents_language, + key_listener = false, }: ConfirmUpdateProps) { const [open, set] = useState(false); useCtrlKeyListener("Enter", () => { + if (!key_listener) return; if (open) { onConfirm(); } else {