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", "金币")}
{canUpdate ? ( ) : 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)); }