@pnp/spfx-controls-react
Version:
Reusable React controls for SharePoint Framework solutions
41 lines • 1.75 kB
JavaScript
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
import * as React from 'react';
import { useCallback } from 'react';
import { ThemeProvider } from '@fluentui/react-theme-provider';
import { generateThemeFromColors, generateThemeVariant, getDefaultTheme, } from './VariantThemeProviderHelpers';
import { VariantType, } from './VariantThemeProviderProps';
export var VariantThemeProvider = function (props) {
var themeToApply = useCallback(function () {
var workingVariantType = props.variantType
? props.variantType
: VariantType.None;
var workingTheme;
if (props.themeColors) {
workingTheme = generateThemeFromColors(props.themeColors.primaryColor, props.themeColors.textColor, props.themeColors.backgroundColor);
}
else {
if (props.theme) {
workingTheme = props.theme;
}
else {
workingTheme = getDefaultTheme();
}
}
var themeVariantToApply = props.variantType === VariantType.None
? workingTheme
: generateThemeVariant(workingTheme, workingVariantType);
return themeVariantToApply;
}, [props.theme, props.themeColors, props.variantType]);
return (React.createElement(ThemeProvider, __assign({}, props, { theme: themeToApply() }), props.children));
};
//# sourceMappingURL=VariantThemeProvider.js.map