@grafana/ui
Version:
Grafana Components Library
1 lines • 3.17 kB
Source Map (JSON)
{"version":3,"file":"useLanguageExtension.mjs","sources":["../../../../src/components/CodeMirror/useLanguageExtension.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nimport { faro } from '@grafana/faro-web-sdk';\n\nimport { loadLanguageExtension } from './languageLoader';\nimport { type CodeMirrorEditorLanguage, type CodeMirrorExtension } from './types';\n\nexport interface LanguageExtensionState {\n extension: CodeMirrorExtension | null;\n error: Error | null;\n}\n\nexport function useLanguageExtension(language?: CodeMirrorEditorLanguage): LanguageExtensionState {\n const [languageExtension, setLanguageExtension] = useState<CodeMirrorExtension | null>(null);\n const [error, setError] = useState<Error | null>(null);\n\n useEffect(() => {\n let cancelled = false;\n\n if (!language) {\n setLanguageExtension(null);\n setError(null);\n return;\n }\n\n setLanguageExtension(null);\n setError(null);\n\n void loadLanguageExtension(language)\n .then((extension) => {\n if (!cancelled) {\n setLanguageExtension(extension);\n setError(null);\n }\n })\n .catch((caughtError: unknown) => {\n const error =\n caughtError instanceof Error\n ? caughtError\n : new Error('Failed to load CodeMirror language extension', { cause: caughtError });\n\n faro?.api?.pushError(error, {\n context: {\n type: 'async',\n source: 'CodeMirror.useLanguageExtension',\n language,\n },\n });\n\n if (!cancelled) {\n setLanguageExtension(null);\n setError(error);\n }\n });\n\n return () => {\n cancelled = true;\n };\n }, [language]);\n\n return { extension: languageExtension, error };\n}\n"],"names":["error"],"mappings":";;;;;AAYO,SAAS,qBAAqB,QAAA,EAA6D;AAChG,EAAA,MAAM,CAAC,iBAAA,EAAmB,oBAAoB,CAAA,GAAI,SAAqC,IAAI,CAAA;AAC3F,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAI,SAAuB,IAAI,CAAA;AAErD,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,SAAA,GAAY,KAAA;AAEhB,IAAA,IAAI,CAAC,QAAA,EAAU;AACb,MAAA,oBAAA,CAAqB,IAAI,CAAA;AACzB,MAAA,QAAA,CAAS,IAAI,CAAA;AACb,MAAA;AAAA,IACF;AAEA,IAAA,oBAAA,CAAqB,IAAI,CAAA;AACzB,IAAA,QAAA,CAAS,IAAI,CAAA;AAEb,IAAA,KAAK,qBAAA,CAAsB,QAAQ,CAAA,CAChC,IAAA,CAAK,CAAC,SAAA,KAAc;AACnB,MAAA,IAAI,CAAC,SAAA,EAAW;AACd,QAAA,oBAAA,CAAqB,SAAS,CAAA;AAC9B,QAAA,QAAA,CAAS,IAAI,CAAA;AAAA,MACf;AAAA,IACF,CAAC,CAAA,CACA,KAAA,CAAM,CAAC,WAAA,KAAyB;AAnCvC,MAAA,IAAA,EAAA,EAAA,EAAA;AAoCQ,MAAA,MAAMA,MAAAA,GACJ,WAAA,YAAuB,KAAA,GACnB,WAAA,GACA,IAAI,MAAM,8CAAA,EAAgD,EAAE,KAAA,EAAO,WAAA,EAAa,CAAA;AAEtF,MAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAA,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAM,GAAA,KAAN,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAW,SAAA,CAAUA,MAAAA,EAAO;AAAA,QAC1B,OAAA,EAAS;AAAA,UACP,IAAA,EAAM,OAAA;AAAA,UACN,MAAA,EAAQ,iCAAA;AAAA,UACR;AAAA;AACF,OACF,CAAA;AAEA,MAAA,IAAI,CAAC,SAAA,EAAW;AACd,QAAA,oBAAA,CAAqB,IAAI,CAAA;AACzB,QAAA,QAAA,CAASA,MAAK,CAAA;AAAA,MAChB;AAAA,IACF,CAAC,CAAA;AAEH,IAAA,OAAO,MAAM;AACX,MAAA,SAAA,GAAY,IAAA;AAAA,IACd,CAAA;AAAA,EACF,CAAA,EAAG,CAAC,QAAQ,CAAC,CAAA;AAEb,EAAA,OAAO,EAAE,SAAA,EAAW,iBAAA,EAAmB,KAAA,EAAM;AAC/C;;;;"}