feat: add AdminMemberTiers page, MemberBadge component, and SettingsLayout; refactor routes and sidebar for improved navigation

This commit is contained in:
2026-01-26 13:58:44 -06:00
parent 7ee5cb0d9c
commit ac8d40112e
10 changed files with 202 additions and 14 deletions

23
src/utils/member-tiers.js Normal file
View File

@@ -0,0 +1,23 @@
// src/utils/member-tiers.js
import { differenceInDays } from 'date-fns';
import { DEFAULT_MEMBER_TIERS } from '../config/memberTiers';
export const getTenureDays = (memberSince) => {
if (!memberSince) return null;
const since = new Date(memberSince);
if (Number.isNaN(since.getTime())) return null;
return Math.max(0, differenceInDays(new Date(), since));
};
export const getTierForMember = (memberSince, tiers = DEFAULT_MEMBER_TIERS) => {
const days = getTenureDays(memberSince);
if (days == null) return tiers[0];
const match = tiers.find(
(tier) =>
days >= tier.minDays &&
(tier.maxDays == null || days <= tier.maxDays)
);
return match || tiers[0];
};