@ant-design/compatible
Version:
Ant Design v3 to v4 compatible package
127 lines (118 loc) • 4.83 kB
JavaScript
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
import * as React from 'react';
import { useStyleRegister } from '@ant-design/cssinjs';
import { theme as antdTheme, ConfigProvider } from 'antd';
import { resetComponent } from "antd/es/style";
// ============================== Export ==============================
var genSharedButtonStyle = function genSharedButtonStyle(token) {
var _objectSpread2;
var componentCls = token.componentCls,
colorBgContainer = token.colorBgContainer,
fontSize = token.fontSize,
fontSizeSM = token.fontSizeSM,
padding = token.padding,
paddingXS = token.paddingXS,
marginSM = token.marginSM,
marginXXS = token.marginXXS,
controlHeight = token.controlHeight,
lineHeightSM = token.lineHeightSM,
colorText = token.colorText,
colorTextSecondary = token.colorTextSecondary,
colorTextTertiary = token.colorTextTertiary,
motionDurationSlow = token.motionDurationSlow;
return _defineProperty({}, componentCls, _objectSpread(_objectSpread({}, resetComponent(token)), {}, (_objectSpread2 = {
position: 'relative',
backgroundColor: colorBgContainer
}, _defineProperty(_objectSpread2, "".concat(componentCls, "-inner"), {
display: 'flex',
paddingBlock: padding
}), _defineProperty(_objectSpread2, "".concat(componentCls, "-avatar"), {
position: 'relative',
flexShrink: 0,
marginInlineEnd: marginSM,
cursor: 'pointer',
img: {
width: controlHeight,
height: controlHeight,
borderRadius: '50%'
}
}), _defineProperty(_objectSpread2, "".concat(componentCls, "-content"), {
position: 'relative',
flex: 'auto',
minWidth: 0,
wordWrap: 'break-word',
'&-author': {
display: 'flex',
flexWrap: 'wrap',
justifyContent: 'flex-start',
marginBottom: marginXXS,
'& > a, & > span': {
paddingInlineEnd: paddingXS,
fontSize: fontSizeSM,
lineHeight: lineHeightSM
},
'&-name': {
color: colorTextSecondary,
fontSize: fontSize,
transition: "color ".concat(motionDurationSlow),
'> *': {
color: colorTextSecondary,
'&:hover': {
color: colorTextSecondary
}
}
},
'&-time': {
color: colorTextTertiary,
whiteSpace: 'nowrap',
cursor: 'auto'
}
},
'&-detail p': {
whiteSpace: 'pre-wrap',
marginBlock: 0
}
}), _defineProperty(_objectSpread2, "".concat(componentCls, "-actions"), {
marginTop: marginSM,
marginBottom: 0,
paddingInlineStart: 0,
'> li': {
display: 'inline-block',
color: colorTextSecondary,
'> span': {
marginInlineEnd: marginSM,
color: colorTextSecondary,
fontSize: fontSizeSM,
cursor: 'pointer',
transition: "color ".concat(motionDurationSlow),
userSelect: 'none',
'&:hover': {
color: colorText
}
}
}
}), _defineProperty(_objectSpread2, "".concat(componentCls, "-nested"), {
marginInlineStart: 44
}), _objectSpread2)));
};
export default function useStyle(prefixCls) {
var _antdTheme$useToken = antdTheme.useToken(),
theme = _antdTheme$useToken.theme,
token = _antdTheme$useToken.token,
hashId = _antdTheme$useToken.hashId;
var _React$useContext = React.useContext(ConfigProvider.ConfigContext),
iconPrefixCls = _React$useContext.iconPrefixCls;
return [useStyleRegister({
theme: theme,
token: token,
hashId: hashId,
path: ['compatible', 'Comment', prefixCls, iconPrefixCls]
}, function () {
var mergedToken = _objectSpread({
componentCls: ".".concat(prefixCls)
}, token);
return [genSharedButtonStyle(mergedToken)];
}), hashId];
}