1
0
mirror of https://github.com/sasjs/server.git synced 2025-12-10 19:34:34 +00:00

fix(web): dispose monaco editor actions in return of useEffect

This commit is contained in:
2022-11-11 15:27:12 +05:00
parent 4ca61feda6
commit acc25cbd68

View File

@@ -49,7 +49,7 @@ const useEditor = ({
const [openFilePathInputModal, setOpenFilePathInputModal] = useState(false)
const [showDiff, setShowDiff] = useState(false)
const editorRef = useRef(null as any)
const editorRef = useRef<monaco.editor.IStandaloneCodeEditor | null>(null)
const handleEditorDidMount: EditorDidMount = (editor) => {
editorRef.current = editor
@@ -199,7 +199,7 @@ const useEditor = ({
}
useEffect(() => {
editorRef.current.addAction({
const saveFileAction = editorRef.current?.addAction({
// An unique identifier of the contributed action.
id: 'save-file',
@@ -209,6 +209,8 @@ const useEditor = ({
// An optional array of keybindings for the action.
keybindings: [monaco.KeyMod.CtrlCmd | monaco.KeyCode.KeyS],
contextMenuGroupId: '9_cutcopypaste',
// Method that will be executed when the action is triggered.
// @param editor The editor instance is passed in as a convenience
run: () => {
@@ -217,7 +219,7 @@ const useEditor = ({
}
})
editorRef.current.addAction({
const runCodeAction = editorRef.current?.addAction({
// An unique identifier of the contributed action.
id: 'run-code',
@@ -229,14 +231,17 @@ const useEditor = ({
contextMenuGroupId: 'navigation',
contextMenuOrder: 1,
// Method that will be executed when the action is triggered.
// @param editor The editor instance is passed in as a convenience
run: function () {
runCode(getSelection(editorRef.current as any) || fileContent)
}
})
return () => {
saveFileAction?.dispose()
runCodeAction?.dispose()
}
}, [fileContent, prevFileContent, selectedFilePath, saveFile, runCode])
useEffect(() => {