feat: add AdminMemberTiers page, MemberBadge component, and SettingsLayout; refactor routes and sidebar for improved navigation
This commit is contained in:
23
src/utils/member-tiers.js
Normal file
23
src/utils/member-tiers.js
Normal 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];
|
||||
};
|
||||
Reference in New Issue
Block a user