feat: add AdminMemberTiers page, MemberBadge component, and SettingsLayout; refactor routes and sidebar for improved navigation
This commit is contained in:
50
src/pages/admin/AdminMemberTiers.js
Normal file
50
src/pages/admin/AdminMemberTiers.js
Normal file
@@ -0,0 +1,50 @@
|
||||
import React from 'react';
|
||||
import { Card } from '../../components/ui/card';
|
||||
import { Badge } from '../../components/ui/badge';
|
||||
import { DEFAULT_MEMBER_TIERS } from '../../config/MemberTiers';
|
||||
|
||||
const AdminMemberTiers = () => {
|
||||
return (
|
||||
<div className="space-y-6">
|
||||
<div>
|
||||
<h1 className="text-3xl font-bold text-[var(--purple-ink)]" style={{ fontFamily: "'Inter', sans-serif" }}>
|
||||
Member Tiers
|
||||
</h1>
|
||||
<p className="text-brand-purple mt-2" style={{ fontFamily: "'Nunito Sans', sans-serif" }}>
|
||||
Configure tier names, time ranges, and badges used in the members directory.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<Card className="p-6 bg-background rounded-2xl border border-[var(--neutral-800)]">
|
||||
<div className="space-y-4">
|
||||
{DEFAULT_MEMBER_TIERS.map((tier) => {
|
||||
const rangeLabel = tier.maxDays == null
|
||||
? `${tier.minDays}+ days`
|
||||
: `${tier.minDays}–${tier.maxDays} days`;
|
||||
|
||||
return (
|
||||
<div
|
||||
key={tier.id}
|
||||
className="flex flex-wrap items-center justify-between gap-4 border border-[var(--neutral-800)] rounded-xl p-4"
|
||||
>
|
||||
<div>
|
||||
<div className="text-lg font-semibold text-[var(--purple-ink)]" style={{ fontFamily: "'Inter', sans-serif" }}>
|
||||
{tier.label}
|
||||
</div>
|
||||
<div className="text-sm text-brand-purple" style={{ fontFamily: "'Nunito Sans', sans-serif" }}>
|
||||
{rangeLabel}
|
||||
</div>
|
||||
</div>
|
||||
<Badge className={`px-3 py-1 rounded-md text-sm ${tier.badgeClass}`}>
|
||||
{tier.icon}
|
||||
</Badge>
|
||||
</div>
|
||||
);
|
||||
})}
|
||||
</div>
|
||||
</Card>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
export default AdminMemberTiers;
|
||||
Reference in New Issue
Block a user