UNPKG

@grafana/ui

Version:
47 lines (44 loc) 1.41 kB
import { useState, useEffect } from 'react'; import { faro } from '@grafana/faro-web-sdk'; import { loadLanguageExtension } from './languageLoader.mjs'; "use strict"; function useLanguageExtension(language) { const [languageExtension, setLanguageExtension] = useState(null); const [error, setError] = useState(null); useEffect(() => { let cancelled = false; if (!language) { setLanguageExtension(null); setError(null); return; } setLanguageExtension(null); setError(null); void loadLanguageExtension(language).then((extension) => { if (!cancelled) { setLanguageExtension(extension); setError(null); } }).catch((caughtError) => { var _a, _b; const error2 = caughtError instanceof Error ? caughtError : new Error("Failed to load CodeMirror language extension", { cause: caughtError }); (_b = (_a = faro) == null ? void 0 : _a.api) == null ? void 0 : _b.pushError(error2, { context: { type: "async", source: "CodeMirror.useLanguageExtension", language } }); if (!cancelled) { setLanguageExtension(null); setError(error2); } }); return () => { cancelled = true; }; }, [language]); return { extension: languageExtension, error }; } export { useLanguageExtension }; //# sourceMappingURL=useLanguageExtension.mjs.map