UI: Add option to autosave scripts on focus change (#2565)

This commit is contained in:
catloversg
2026-03-14 09:37:17 +07:00
committed by GitHub
parent 9f6e2ce2d1
commit ade79c0f65
11 changed files with 108 additions and 52 deletions
+14
View File
@@ -13,6 +13,9 @@ import reactDomTypes from "../../../node_modules/@types/react-dom/index.d.ts?raw
import { useScriptEditorContext } from "./ScriptEditorContext";
import { scriptEditor } from "../ScriptEditor";
import { Settings } from "../../Settings/Settings";
import { openScripts } from "../EditorData";
import { isUnsavedFile, saveScript } from "./utils";
interface EditorProps {
/** Function to be ran after mounting editor */
@@ -63,6 +66,17 @@ export function Editor({ onMount, onChange, onUnmount }: EditorProps) {
subscription.current = editorRef.current.onDidChangeModelContent(() => {
onChange(editorRef.current?.getValue());
});
editorRef.current.onDidBlurEditorWidget(() => {
if (!Settings.MonacoAutoSaveOnFocusChange) {
return;
}
for (let i = 0; i < openScripts.length; ++i) {
if (!isUnsavedFile(openScripts, i)) {
continue;
}
saveScript(openScripts[i]);
}
});
// Unmounting
return () => {