@neo4j-ndl/react
Version:
React implementation of Neo4j Design System
55 lines • 2.01 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/>.
*/
import { base16AteliersulphurpoolLight, coy, duotoneLight, ghcolors, prism, solarizedlight, vs, } from 'react-syntax-highlighter/dist/cjs/styles/prism';
import { useNeedleTheme } from '../../theme';
import ndlCodeDark from '../themes/ndl-code-dark';
import ndlCodeLight from '../themes/ndl-code-light';
/**
* The color themes that we support for the Prism code highlighting library.
*/
const PRISM_CODE_THEMES = {
'base16-ateliersulphurpool.light': base16AteliersulphurpoolLight,
coy,
'duotone-light': duotoneLight,
ghcolors,
'ndl-code-dark': ndlCodeDark,
'ndl-code-light': ndlCodeLight,
prism,
solarizedlight,
vs,
};
/**
* Map the Needle theme to the corresponding Prism color theme.
*/
const NEEDLE_CODE_THEMES = {
dark: ndlCodeDark,
light: ndlCodeLight,
};
/**
* Get the Prism code color theme.
* Defaults to the appropriate Prism theme based on the Needle theme if no chosen theme is provided.
*/
export const useCodeTheme = (chosenTheme) => {
var _a;
const { theme: needleTheme } = useNeedleTheme();
return ((_a = (chosenTheme && PRISM_CODE_THEMES[chosenTheme])) !== null && _a !== void 0 ? _a : NEEDLE_CODE_THEMES[needleTheme]);
};
//# sourceMappingURL=use-code-theme.js.map