import classNames from "classnames"; import * as React from "react"; import * as Classes from "../../common/classes"; import { Elevation } from "../../common/elevation"; import { DISPLAYNAME_PREFIX, HTMLDivProps, IProps } from "../../common/props"; export interface ICardProps extends IProps, HTMLDivProps { /** * Controls the intensity of the drop shadow beneath the card: the higher * the elevation, the higher the drop shadow. At elevation `0`, no drop * shadow is applied. * * @default 0 */ elevation?: Elevation; /** * Whether the card should respond to user interactions. If set to `true`, * hovering over the card will increase the card's elevation * and change the mouse cursor to a pointer. * * Recommended when `onClick` is also defined. * * @default false */ interactive?: boolean; /** * Callback invoked when the card is clicked. * Recommended when `interactive` is `true`. */ onClick?: (e: React.MouseEvent) => void; } export class Card extends React.PureComponent { public static displayName = `${DISPLAYNAME_PREFIX}.Card`; public static defaultProps: ICardProps = { elevation: Elevation.ZERO, interactive: false, }; public render() { const { className, elevation, interactive, ...htmlProps } = this.props; const classes = classNames( Classes.CARD, { [Classes.INTERACTIVE]: interactive }, Classes.elevationClass(elevation), className, ); return
; } }