UNPKG

@pnp/spfx-controls-react

Version:

Reusable React controls for SharePoint Framework solutions

35 lines 1.77 kB
"use strict"; 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