feat: color-code referral network nodes by subscription status

Add subscription status colors: green (paid active), blue (trial active),
red (paid expired), orange (trial expired). Extract NODE_COLORS constant
as single source of truth. Add SubscriptionStatus union type. Show status
badge in user detail panel. Add i18n for all 4 locales.
This commit is contained in:
Fringg
2026-03-22 09:07:32 +03:00
parent 8e59af96c5
commit b289ea9c23
9 changed files with 134 additions and 22 deletions

View File

@@ -30,7 +30,12 @@ function buildFullGraph(graphData: NetworkGraphData): Graph {
});
graphData.users.forEach((user) => {
const color = getUserNodeColor(user.direct_referrals, user.is_partner, user.campaign_id);
const color = getUserNodeColor(
user.direct_referrals,
user.is_partner,
user.campaign_id,
user.subscription_status,
);
const size = getUserNodeSize(user.direct_referrals);
graph.addNode(`user_${user.id}`, {
@@ -45,6 +50,7 @@ function buildFullGraph(graphData: NetworkGraphData): Graph {
isPartner: user.is_partner,
directReferrals: user.direct_referrals,
campaignId: user.campaign_id,
subscriptionStatus: user.subscription_status,
});
});