@pnp/spfx-controls-react
Version:
Reusable React controls for SharePoint Framework solutions
50 lines • 2.17 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.useMonaco = exports.EStatus = void 0;
var tslib_1 = require("tslib");
var react_1 = require("react");
var loader_1 = tslib_1.__importDefault(require("@monaco-editor/loader"));
var 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 = {}));
var useMonaco = function () {
var _a = (0, react_1.useState)(undefined), monaco = _a[0], setMonaco = _a[1];
var _b = (0, react_1.useState)(EStatus.LOADING), status = _b[0], setStatus = _b[1];
var _c = (0, react_1.useState)(undefined), error = _c[0], setError = _c[1];
(0, react_1.useEffect)(function () {
(function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
var monacoObj, error_1;
return tslib_1.__generator(this, function (_a) {
switch (_a.label) {
case 0:
_a.trys.push([0, 2, , 3]);
loader_1.default.config({ paths: { vs: CDN_PATH_TO_MONACO_EDITOR } });
return [4 /*yield*/, loader_1.default.init()];
case 1:
monacoObj = _a.sent();
setStatus(EStatus.LOADED);
setMonaco(monacoObj);
return [3 /*break*/, 3];
case 2:
error_1 = _a.sent();
setStatus(EStatus.ERROR);
setMonaco(undefined);
setError(error_1);
return [3 /*break*/, 3];
case 3: return [2 /*return*/];
}
});
}); })().then(function () { }).catch(function () { });
}, []);
return {
monaco: monaco,
status: status,
error: error,
};
};
exports.useMonaco = useMonaco;
//# sourceMappingURL=useMonaco.js.map