@neo4j-ndl/react
Version:
React implementation of Neo4j Design System
49 lines • 1.91 kB
JavaScript
;
/**
*
* Copyright (c) "Neo4j"
* Neo4j Sweden AB [http://neo4j.com]
*
* This file is part of Neo4j.
*
* Neo4j is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.useCodeLanguage = void 0;
const react_1 = require("react");
const react_syntax_highlighter_1 = require("react-syntax-highlighter");
const code_languages_1 = require("../code-languages");
/**
* Load the code highlighting language for the given language.
* Defaults to 'text' if no language is provided.
*/
const useCodeLanguage = (language) => {
const [loadedLanguage, setLoadedLanguage] = (0, react_1.useState)('text');
(0, react_1.useEffect)(() => {
if (language === undefined || language === 'text') {
setLoadedLanguage('text');
return;
}
(0, code_languages_1.loadLanguage)(language)
.then((module) => {
react_syntax_highlighter_1.PrismLight.registerLanguage(language, module.default);
setLoadedLanguage(language);
})
// TODO: add visual feedback for the user
.catch((err) => console.error(err));
}, [language]);
return loadedLanguage;
};
exports.useCodeLanguage = useCodeLanguage;
//# sourceMappingURL=use-code-language.js.map