Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
renderer = null,
rtl = false,
theme = emptyTheme,
telemetry = undefined as Telemetry,
_internal_resolvedComponentVariables: resolvedComponentVariables = {},
} = context || {}
const startTime = telemetry && telemetry.enabled ? performance.now() : 0
const ElementType = getElementType(props) as React.ReactType<p>
const stateAndProps = { ...state, ...props }
// Resolve variables for this component, cache the result in provider
if (!resolvedComponentVariables[displayName]) {
resolvedComponentVariables[displayName] =
callable(theme.componentVariables[displayName])(theme.siteVariables) || {} // component variables must not be undefined/null (see mergeComponentVariables contract)
}
// Merge inline variables on top of cached variables
const resolvedVariables = props.variables
? mergeComponentVariables(
resolvedComponentVariables[displayName],
withDebugId(props.variables, 'props.variables'),
)(theme.siteVariables)
: resolvedComponentVariables[displayName]
const animationCSSProp = props.animation
? createAnimationStyles(props.animation, context.theme)
: {}
// Resolve styles using resolved variables, merge results, allow props.styles to override
const mergedStyles: ComponentSlotStylesPrepared = mergeComponentStyles(</p>
renderComponent({ ElementType, classes, unhandledProps, accessibility, theme, rtl, styles }) {
const { name } = this.props
const { icons = {} } = theme || {}
const maybeIcon = icons[name]
const isSvgIcon = maybeIcon && maybeIcon.isSvg
return (
{isSvgIcon && callable(maybeIcon.icon)({ classes, rtl, props: this.props })}
)
}
}