@pnp/spfx-controls-react
Version:
Reusable React controls for SharePoint Framework solutions
35 lines • 1.77 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.VariantThemeProvider = void 0;
var tslib_1 = require("tslib");
var React = tslib_1.__importStar(require("react"));
var react_1 = require("react");
var react_theme_provider_1 = require("@fluentui/react-theme-provider");
var VariantThemeProviderHelpers_1 = require("./VariantThemeProviderHelpers");
var VariantThemeProviderProps_1 = require("./VariantThemeProviderProps");
var VariantThemeProvider = function (props) {
var themeToApply = (0, react_1.useCallback)(function () {
var workingVariantType = props.variantType
? props.variantType
: VariantThemeProviderProps_1.VariantType.None;
var workingTheme;
if (props.themeColors) {
workingTheme = (0, VariantThemeProviderHelpers_1.generateThemeFromColors)(props.themeColors.primaryColor, props.themeColors.textColor, props.themeColors.backgroundColor);
}
else {
if (props.theme) {
workingTheme = props.theme;
}
else {
workingTheme = (0, VariantThemeProviderHelpers_1.getDefaultTheme)();
}
}
var themeVariantToApply = props.variantType === VariantThemeProviderProps_1.VariantType.None
? workingTheme
: (0, VariantThemeProviderHelpers_1.generateThemeVariant)(workingTheme, workingVariantType);
return themeVariantToApply;
}, [props.theme, props.themeColors, props.variantType]);
return (React.createElement(react_theme_provider_1.ThemeProvider, tslib_1.__assign({}, props, { theme: themeToApply() }), props.children));
};
exports.VariantThemeProvider = VariantThemeProvider;
//# sourceMappingURL=VariantThemeProvider.js.map