import classNames from "classnames"; import React, { Ref } from "react"; import { useConfig } from "../_util/config-context"; import { StyledProps } from "../_type"; import { createRocket } from "../_util/create-rocket"; import { forwardRefWithStatics } from "../_util/forward-ref-with-statics"; export interface MetricsBoardProps extends StyledProps { /** * 标题 */ title: React.ReactNode; /** * 统计数值 */ value: React.ReactNode; /** * 统计数值单位 */ unit?: React.ReactNode; /** * 统计信息 */ infos?: React.ReactNode[]; /** * 点击回调 * * **当传递该回调函数后,组件会变为可点击的样式** */ onClick?: (event: React.MouseEvent) => void; } export const MetricsBoard = forwardRefWithStatics( ( { title, value, unit, infos = [], onClick, className, style, }: MetricsBoardProps, ref: Ref ) => { const { classPrefix } = useConfig(); const hasOnClick = typeof onClick === "function"; return (
null} ref={ref} >
{title}
{value} {" "} {unit}
{infos.map((info, index) => (
{info}
))}
); }, { InfoLabel: createRocket( "MetricsBoardInfoLabel", "label.@{prefix}-metrics-board__info-label" ), InfoKey: createRocket( "MetricsBoardInfoKey", "label.@{prefix}-metrics-board__info-key" ), } ); MetricsBoard.displayName = "MetricsBoard";