UNPKG

@pnp/spfx-property-controls

Version:

Reusable property pane controls for SharePoint Framework solutions

40 lines 1.54 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useMonaco = exports.EStatus = void 0; const tslib_1 = require("tslib"); const react_1 = require("react"); const loader_1 = tslib_1.__importDefault(require("@monaco-editor/loader")); const CDN_PATH_TO_MONACO_EDITOR = "https://cdn.jsdelivr.net/npm/monaco-editor@0.32.1/min/vs"; var EStatus; (function (EStatus) { EStatus[EStatus["LOADING"] = 0] = "LOADING"; EStatus[EStatus["LOADED"] = 1] = "LOADED"; EStatus[EStatus["ERROR"] = 2] = "ERROR"; })(EStatus || (exports.EStatus = EStatus = {})); const useMonaco = () => { const [monaco, setMonaco] = (0, react_1.useState)(undefined); const [status, setStatus] = (0, react_1.useState)(EStatus.LOADING); const [error, setError] = (0, react_1.useState)(undefined); (0, react_1.useEffect)(() => { (() => tslib_1.__awaiter(void 0, void 0, void 0, function* () { try { loader_1.default.config({ paths: { vs: CDN_PATH_TO_MONACO_EDITOR } }); const monacoObj = yield loader_1.default.init(); setStatus(EStatus.LOADED); setMonaco(monacoObj); } catch (error) { setStatus(EStatus.ERROR); setMonaco(undefined); setError(error); } }))().then(() => { }).catch(() => { }); }, []); return { monaco, status, error, }; }; exports.useMonaco = useMonaco; //# sourceMappingURL=useMonaco.js.map