比例
This commit is contained in:
parent
62d88d178f
commit
66ffb3647c
@ -65,10 +65,11 @@ function MetricSubValues({ items }) {
|
||||
}
|
||||
|
||||
function MetricDelta({ compact = false, item }) {
|
||||
const tone = item.deltaTone || (String(item.delta || "").trim().startsWith("-") ? "down" : "up");
|
||||
return (
|
||||
<div className={["metric-delta", compact ? "metric-delta--compact" : "", item.deltaTone === "down" ? "metric-delta--down" : ""].filter(Boolean).join(" ")}>
|
||||
<div className={["metric-delta", compact ? "metric-delta--compact" : "", tone === "down" ? "metric-delta--down" : ""].filter(Boolean).join(" ")}>
|
||||
<span>{item.caption}</span>
|
||||
<b className={item.delta ? "" : "metric-delta-empty"}>{item.delta ? `${item.deltaTone === "down" ? "↓" : "↑"} ${item.delta.replace(/^[-+]/, "")}` : "--"}</b>
|
||||
<b className={item.delta ? "" : "metric-delta-empty"}>{item.delta ? `${tone === "down" ? "↓" : "↑"} ${item.delta.replace(/^[-+]/, "")}` : "--"}</b>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
10
databi/src/components/MetricCard.test.jsx
Normal file
10
databi/src/components/MetricCard.test.jsx
Normal file
@ -0,0 +1,10 @@
|
||||
import { render, screen } from "@testing-library/react";
|
||||
import { expect, test } from "vitest";
|
||||
import { MetricCard } from "./MetricCard.jsx";
|
||||
|
||||
test("renders a down arrow when delta text is negative", () => {
|
||||
render(<MetricCard item={{ caption: "与昨日相比", delta: "-39.27%", label: "活跃用户", value: "116" }} />);
|
||||
|
||||
expect(screen.getByText("↓ 39.27%")).toBeInTheDocument();
|
||||
});
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user