UNPKG

@mikezimm/fps-library-v2

Version:

Library of reusable typescript/javascript functions, interfaces and constants

41 lines 1.34 kB
import { useState, useEffect } from "react"; import loader from "@monaco-editor/loader"; const CDN_PATH_TO_MONACO_EDITOR = "https://cdn.jsdelivr.net/npm/monaco-editor@0.47.0/min/vs"; export var EStatus; (function (EStatus) { EStatus[EStatus["LOADING"] = 0] = "LOADING"; EStatus[EStatus["LOADED"] = 1] = "LOADED"; EStatus[EStatus["ERROR"] = 2] = "ERROR"; })(EStatus || (EStatus = {})); export const useMonaco = () => { const [monaco, setMonaco] = useState(undefined); const [status, setStatus] = useState(EStatus.LOADING); const [error, setError] = useState(undefined); useEffect(() => { (async () => { try { loader.config({ paths: { vs: CDN_PATH_TO_MONACO_EDITOR } }); const monacoObj = await loader.init(); setStatus(EStatus.LOADED); setMonaco(monacoObj); } catch (error) { setError(error); setStatus(EStatus.ERROR); setMonaco(undefined); } })() .then(() => { /** no-op; */ }) .catch(() => { /** no-op; */ }); }, []); return { monaco, status, error, }; }; //# sourceMappingURL=useMonaco.js.map