From 89cbd6ae8e4af7a747b4d256defeb3657e7aaf76 Mon Sep 17 00:00:00 2001
From: "gpt-engineer-app[bot]"
<159125892+gpt-engineer-app[bot]@users.noreply.github.com>
Date: Sun, 28 Sep 2025 19:02:02 +0000
Subject: [PATCH] Refactor admin page layout
---
src/components/moderation/ModerationQueue.tsx | 160 ++++++++++++------
src/pages/Admin.tsx | 26 ++-
2 files changed, 129 insertions(+), 57 deletions(-)
diff --git a/src/components/moderation/ModerationQueue.tsx b/src/components/moderation/ModerationQueue.tsx
index 4729cc59..8feca222 100644
--- a/src/components/moderation/ModerationQueue.tsx
+++ b/src/components/moderation/ModerationQueue.tsx
@@ -1,11 +1,11 @@
import { useState, useEffect } from 'react';
-import { CheckCircle, XCircle, Eye, Calendar, User, Filter, MessageSquare, FileText, Image } from 'lucide-react';
+import { CheckCircle, XCircle, Eye, Calendar, User, Filter, MessageSquare, FileText, Image, X } from 'lucide-react';
import { Button } from '@/components/ui/button';
import { Badge } from '@/components/ui/badge';
import { Card, CardContent, CardHeader } from '@/components/ui/card';
import { Textarea } from '@/components/ui/textarea';
import { Label } from '@/components/ui/label';
-import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs';
+import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select';
import { supabase } from '@/integrations/supabase/client';
import { useToast } from '@/hooks/use-toast';
import { format } from 'date-fns';
@@ -455,56 +455,120 @@ export function ModerationQueue() {
);
};
+ const clearFilters = () => {
+ setActiveEntityFilter('all');
+ setActiveStatusFilter('pending');
+ };
+
+ const getEntityFilterIcon = (filter: EntityFilter) => {
+ switch (filter) {
+ case 'reviews': return ;
+ case 'submissions': return ;
+ case 'photos': return ;
+ default: return ;
+ }
+ };
+
return (
- {/* Entity Type Filter */}
-
setActiveEntityFilter(value as EntityFilter)}>
-
-
-
- All
-
-
-
- Reviews
-
-
-
- Submissions
-
-
-
- Photos
-
-
-
+ {/* Filter Bar */}
+
+
+
+
+
+
- {/* Status Filter */}
-
setActiveStatusFilter(value as StatusFilter)}>
-
-
-
- All
-
-
-
- Pending
-
-
-
- Flagged
-
-
-
- Approved
-
-
-
- Rejected
-
-
-
+
+
+
+
+
+ {(activeEntityFilter !== 'all' || activeStatusFilter !== 'pending') && (
+
+
+
+ )}
+
+
+ {/* Active Filters Display */}
+ {(activeEntityFilter !== 'all' || activeStatusFilter !== 'pending') && (
+
+ Active filters:
+ {activeEntityFilter !== 'all' && (
+
+ {getEntityFilterIcon(activeEntityFilter)}
+ {activeEntityFilter}
+
+ )}
+ {activeStatusFilter !== 'pending' && (
+
+ {activeStatusFilter}
+
+ )}
+
+ )}
+
+ {/* Queue Content */}
);
diff --git a/src/pages/Admin.tsx b/src/pages/Admin.tsx
index f3f1056b..3e6db73f 100644
--- a/src/pages/Admin.tsx
+++ b/src/pages/Admin.tsx
@@ -98,8 +98,24 @@ export default function Admin() {
+ {/* User Management Section */}
+
+
+
+
+ User Management
+
+
+ Manage user profiles and role assignments
+
+
+
+
+
+
+
-
+
Moderation Queue
@@ -108,10 +124,6 @@ export default function Admin() {
Reports
-
-
- User Management
-
@@ -141,10 +153,6 @@ export default function Admin() {
-
-
-
-
>