import React, { CSSProperties, useContext, useState } from 'react'; import { Card as OldCard, CardProps, ConfigProvider, SkeletonProps, } from 'antd'; import { Skeleton } from '../Skeleton'; import './index.less'; import classNames from 'classnames'; interface CardExtraProps { skeletonProps?: SkeletonProps; hasSkeletion?: boolean; hoverStyle?: CSSProperties; isBoxShadow?: boolean; // 是否加入阴影样式 } const Card = ({ className, children, loading, skeletonProps, hasSkeletion, hoverStyle, bordered = true, isBoxShadow = false, ...props }: CardProps & CardExtraProps) => { const { getPrefixCls } = useContext(ConfigProvider.ConfigContext); const prefixCls = getPrefixCls('btri-card'); const getChildren = () => { return !hasSkeletion ? ( children ) : ( {children} ); }; const [isHover, setHover] = useState(false); const toggleHover = () => setHover(v => !v); const getHoverStyle = () => { return isHover && props.hoverable ? { boxShadow: '0px 2px 8px 0px var(--fill-1)', ...hoverStyle, } : {}; }; return ( {getChildren()} ); }; Card.Meta = OldCard.Meta; Card.Grid = OldCard.Grid; export { Card };