@fluentui/react-northstar
Version:
A themable React component library.
78 lines (76 loc) • 3.25 kB
JavaScript
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.renderComponent = void 0;
var _isEmpty2 = _interopRequireDefault(require("lodash/isEmpty"));
var _reactBindings = require("@fluentui/react-bindings");
var _reactNorthstarStylesRenderer = require("@fluentui/react-northstar-styles-renderer");
var _styles = require("@fluentui/styles");
var _providerMissingHandler = require("./providerMissingHandler");
var renderComponent = function renderComponent(config, context) {
var className = config.className,
displayName = config.displayName,
handledProps = config.handledProps,
props = config.props,
state = config.state,
actionHandlers = config.actionHandlers,
render = config.render,
_config$saveDebug = config.saveDebug,
saveDebug = _config$saveDebug === void 0 ? function () {} : _config$saveDebug;
if ((0, _isEmpty2.default)(context)) {
(0, _providerMissingHandler.logProviderMissingWarning)();
}
var _getTelemetry = (0, _reactBindings.deprecated_getTelemetry)(displayName, context.telemetry, config.isFirstRenderRef),
setStart = _getTelemetry.setStart,
setEnd = _getTelemetry.setEnd;
var rtl = context.rtl || false;
setStart();
var ElementType = (0, _reactBindings.getElementType)(props);
var unhandledProps = (0, _reactBindings.getUnhandledProps)(handledProps, props);
var stateAndProps = Object.assign({}, state, props);
var accessibility = (0, _reactBindings.unstable_getAccessibility)(displayName, props.accessibility, stateAndProps, rtl, actionHandlers);
var _getStyles = (0, _reactBindings.unstable_getStyles)({
allDisplayNames: [displayName],
className: className,
disableAnimations: context.disableAnimations || false,
primaryDisplayName: displayName,
componentProps: stateAndProps,
inlineStylesProps: stateAndProps,
renderer: context.renderer || _reactNorthstarStylesRenderer.noopRenderer,
rtl: rtl,
saveDebug: saveDebug,
theme: context.theme || _styles.emptyTheme,
performance: Object.assign({}, context.performance, {
// we cannot enable caching for class components
enableStylesCaching: false,
enableBooleanVariablesCaching: false
}),
telemetry: context.telemetry
}),
classes = _getStyles.classes,
variables = _getStyles.variables,
styles = _getStyles.styles,
theme = _getStyles.theme;
var resolvedConfig = {
ElementType: ElementType,
unhandledProps: unhandledProps,
classes: classes,
variables: variables,
styles: styles,
accessibility: accessibility,
rtl: rtl,
theme: theme
};
if (accessibility.focusZone) {
var originalElementType = resolvedConfig.ElementType;
resolvedConfig.ElementType = _reactBindings.FocusZone;
resolvedConfig.unhandledProps = Object.assign({}, resolvedConfig.unhandledProps, accessibility.focusZone.props);
resolvedConfig.unhandledProps.as = originalElementType;
resolvedConfig.unhandledProps.isRtl = resolvedConfig.rtl;
}
var element = render(resolvedConfig);
setEnd();
return element;
};
exports.renderComponent = renderComponent;
//# sourceMappingURL=renderComponent.js.map
;