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

Refactor visual editor extension handling

GitOrigin-RevId: e4571d33a36d786997e9de80a8413ca84e8ddf04
Domagoj Kriskovic 2 месяцев назад
Родитель
Сommit
74fa4d95b2

+ 4 - 4
services/web/frontend/js/features/source-editor/extensions/visual/visual.ts

@@ -220,11 +220,11 @@ const visualModuleExtensions = (docName: string): Extension | null => {
   }
 
   for (const provider of moduleVisualExtensionProviders) {
-    const extensions = provider.import.getExtensions(fileExt)
-    if (Array.isArray(extensions) && extensions.length === 0) {
-      continue
+    const result = provider.import.getExtensions(fileExt)
+    const extensions = Array.isArray(result) ? result : [result]
+    if (extensions.length > 0) {
+      return extensions
     }
-    return extensions
   }
 
   return null

+ 5 - 5
services/web/frontend/js/features/source-editor/utils/visual-editor.ts

@@ -1,10 +1,11 @@
+import { Extension } from '@codemirror/state'
 import importOverleafModules from '../../../../macros/import-overleaf-module.macro'
 import { isValidTeXFile } from '../../../main/is-valid-tex-file'
 import { getFileExtension } from './file'
 
 const visualEditorProviders = importOverleafModules('visualEditorProviders')
 const cmVisualEditorProviders: Array<{
-  import: { getExtensions: (ext: string) => unknown }
+  import: { getExtensions: (ext: string) => Extension }
 }> = importOverleafModules('sourceEditorVisualExtensions')
 
 /**
@@ -23,10 +24,9 @@ export function isCmVisualEditorAvailable(filename: string): boolean {
   }
 
   for (const provider of cmVisualEditorProviders) {
-    const extensions = provider.import.getExtensions(extension)
-    if (
-      Array.isArray(extensions) ? extensions.length > 0 : extensions != null
-    ) {
+    const result = provider.import.getExtensions(extension)
+    const extensions = Array.isArray(result) ? result : [result]
+    if (extensions.length > 0) {
       return true
     }
   }