+
{
dataTestId="stat-pending-validation"
/>
- u.status === 'pre_validated').length}
- icon={CheckCircle}
- iconBgClass="text-brand-purple"
- dataTestId="stat-pre-validated"
- />
-
u.status === 'payment_pending').length}
@@ -349,13 +359,12 @@ const AdminValidations = () => {
-
+
All Statuses
- Awaiting Email
- Pending Validation
- Pre-Validated
- Payment Pending
- Rejected
+ Awaiting Email
+ Pending Validation
+ Payment Pending
+ Rejected
@@ -392,6 +401,13 @@ const AdminValidations = () => {
>
Registered {renderSortIcon('created_at')}
+
handleSort('email_verification_expires_at')}
+ >
+ {/* TODO: change ' ' */}
+ Validation Expiry {renderSortIcon('email_verification_expires_at')}
+
Referred By
Actions
@@ -408,6 +424,11 @@ const AdminValidations = () => {
{new Date(user.created_at).toLocaleDateString()}
+
+ {user.email_verification_expires_at
+ ? new Date(user.email_verification_expires_at).toLocaleString()
+ : '—'}
+
{user.referred_by_member_name || '-'}
@@ -429,11 +450,21 @@ const AdminValidations = () => {
onClick={() => handleBypassAndValidateRequest(user)}
disabled={actionLoading === user.id}
size="sm"
- className="bg-[var(--neutral-800)] text-[var(--purple-ink)] hover:bg-background"
+ className="bg-secondary text-[var(--purple-ink)] hover:bg-secondary/80"
>
{actionLoading === user.id ? 'Validating...' : 'Bypass & Validate'}
)}
+ {hasPermission('users.approve') && (
+
+ )}
{hasPermission('users.approve') && (
)}
@@ -455,7 +485,6 @@ const AdminValidations = () => {
size="sm"
className="btn-light-lavender"
>
-
Activate Payment
)}
@@ -467,7 +496,6 @@ const AdminValidations = () => {
variant="outline"
className="border-2 border-red-500 text-red-500 hover:bg-red-50 dark:hover:bg-red-500/10"
>
-
Reject
)}
@@ -492,7 +520,6 @@ const AdminValidations = () => {
variant="outline"
className="border-2 border-red-500 text-red-500 hover:bg-red-50 dark:hover:bg-red-500/10"
>
-
Reject
)}
diff --git a/src/styles/theme.css b/src/styles/theme.css
index 7096ed1..707b7eb 100644
--- a/src/styles/theme.css
+++ b/src/styles/theme.css
@@ -2,32 +2,6 @@
@layer base {
:root {
- --background: 0 0% 100%;
- --foreground: 280 47% 27%;
- --card: 0 0% 100%;
- --card-foreground: 280 47% 27%;
- --popover: 0 0% 100%;
- --popover-foreground: 280 47% 27%;
- --primary: 280 47% 27%;
- --primary-foreground: 0 0% 100%;
- --secondary: 268 33% 89%;
- --secondary-foreground: 280 47% 27%;
- --muted: 268 43% 95%;
- --muted-foreground: 268 35% 47%;
- --accent: var(--brand-orange);
- --accent-foreground: 280 47% 27%;
- --destructive: 0 84.2% 60.2%;
- --destructive-foreground: 0 0% 98%;
- --border: 268 33% 89%;
- --input: 268 33% 89%;
- --ring: 268 35% 47%;
- --chart-1: 268 36% 46%;
- --chart-2: 17 100% 73%;
- --chart-3: 268 33% 89%;
- --chart-4: 280 44% 29%;
- --chart-5: 268 35% 47%;
- --radius: 0.5rem;
-
/* =========================
Brand Colors
========================= */
@@ -47,7 +21,7 @@
/*
==========================
- Color Patch
+ Social Media Colors
==========================
*/
@@ -55,6 +29,50 @@
--blue-facebook: #1877f2;
--blue-twitter: #1da1f2;
--red-instagram: #e4405f;
+
+ /* =========================
+ Theme Colors
+ ========================= */
+ --background: 0 0% 100%;
+ --foreground: 280 47% 27%;
+
+ --card: 0 0% 100%;
+ --card-foreground: 280 47% 27%;
+
+ --popover: 0 0% 100%;
+ --popover-foreground: 280 47% 27%;
+
+ --primary: 280 47% 27%;
+ --primary-foreground: 0 0% 100%;
+
+ --secondary: var(--brand-lavender);
+ --secondary-foreground: 280 47% 27%;
+
+ --muted: 268 43% 95%;
+ --muted-foreground: 268 35% 47%;
+
+ --accent: var(--brand-orange);
+ --accent-foreground: 280 47% 27%;
+
+ --destructive: 0 84.2% 60.2%;
+ --destructive-foreground: 0 0% 98%;
+
+ --success: 147 23% 46%;
+ --success-foreground: 0 0% 98%;
+
+ --warning: var(--brand-orange);
+ --warning-foreground: 0 0% 10%;
+
+ --border: 268 33% 89%;
+ --input: 268 33% 89%;
+ --ring: 268 35% 47%;
+ --chart-1: 268 36% 46%;
+ --chart-2: 17 100% 73%;
+ --chart-3: 268 33% 89%;
+ --chart-4: 280 44% 29%;
+ --chart-5: 268 35% 47%;
+ --radius: 0.5rem;
+
--purple-ink: #422268;
--purple-ink-2: #422268;
--purple-deep: #48286e;
diff --git a/tailwind.config.js b/tailwind.config.js
index 9ebfc77..61d825a 100644
--- a/tailwind.config.js
+++ b/tailwind.config.js
@@ -49,6 +49,10 @@ module.exports = {
DEFAULT: 'hsl(var(--success))',
foreground: 'hsl(var(--success-foreground))'
},
+ warning: {
+ DEFAULT: 'hsl(var(--warning))',
+ foreground: 'hsl(var(--warning-foreground))'
+ },
border: 'hsl(var(--border))',
input: 'hsl(var(--input))',
ring: 'hsl(var(--ring))',