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() { - - - -