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 };