import EditOutlined from "@mui/icons-material/EditOutlined";
import RefreshOutlined from "@mui/icons-material/RefreshOutlined";
import { Button } from "@/shared/ui/Button.jsx";
import styles from "@/features/invite-activity-reward/invite-activity-reward.module.css";
export function InviteActivityRewardConfigSummary({ canUpdate, config, configLoading, onEdit, onRefresh }) {
const tiers = config?.tiers || [];
const activeTiers = tiers.filter((tier) => tier.status === "active");
const rechargeTiers = activeTiers.filter((tier) => tier.rewardType === "recharge");
const validInviteTiers = activeTiers.filter((tier) => tier.rewardType === "valid_invite");
return (
{config?.enabled ? "启用" : "停用"}
{thresholdSummary(rechargeTiers, "thresholdCoinAmount", "金币")}
{thresholdSummary(validInviteTiers, "thresholdValidInviteCount", "people")}
{coinSummary(config?.perInviteInviterRewardCoinAmount)}
{coinSummary(config?.perInviteInviteeRewardCoinAmount)}
{thresholdSummary(activeTiers, "rewardCoinAmount", "金币")}
} onClick={onRefresh}>
刷新
{canUpdate ? (
}
variant="primary"
onClick={onEdit}
>
编辑配置
) : null}
);
}
function SummaryItem({ children, label }) {
return (
{label}
{children}
);
}
function thresholdSummary(tiers, field, unit) {
if (!tiers.length) {
return "-";
}
const values = tiers.map((tier) => Number(tier[field] || 0)).filter((value) => value > 0);
if (!values.length) {
return "-";
}
const min = Math.min(...values);
const max = Math.max(...values);
return min === max ? `${formatNumber(min)} ${unit}` : `${formatNumber(min)} - ${formatNumber(max)} ${unit}`;
}
function coinSummary(value) {
const amount = Number(value || 0);
return amount > 0 ? `${formatNumber(amount)} 金币` : "-";
}
function formatNumber(value) {
return new Intl.NumberFormat("zh-CN").format(Number(value || 0));
}