UNPKG

@alicloudfe/components

Version:

A react component library for aliyun

37 lines (36 loc) 1.44 kB
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 React from 'react'; import hoistNonReactStatics from 'hoist-non-react-statics'; import cls from 'classnames'; import { useCssVar } from './useCssVar'; import ConfigProvider from '../config-provider'; export function withThemeClass(Comp) { // 使用useCssVar为它动态添加类名 var Wrapped = ConfigProvider.config(React.forwardRef(function (props, ref) { var _a; var theme = useCssVar('--alicloudfe-components-theme'); // 判断属于哪个类型主题 var isWind = theme.trim() === 'wind'; var isHybridcloud = theme.trim().startsWith('hybridcloud'); var isYunxiao = theme.trim().startsWith('yunxiao'); return ( // @ts-ignore React.createElement(Comp, __assign({}, props, { ref: ref, className: cls(props.className, (_a = {}, _a['is-wind'] = isWind, _a['is-hybridcloud'] = isHybridcloud, _a['is-yunxiao'] = isYunxiao, _a)) }))); })); hoistNonReactStatics(Wrapped, Comp); return Wrapped; }