feat: Remove all sorting functionality

This commit is contained in:
gpt-engineer-app[bot]
2025-10-13 13:15:14 +00:00
parent 83e10817c5
commit 90ae7d9a41
10 changed files with 13 additions and 468 deletions

View File

@@ -1,14 +1,12 @@
import { Filter, MessageSquare, FileText, Image, ArrowUp, ArrowDown } from 'lucide-react';
import { Filter, MessageSquare, FileText, Image } from 'lucide-react';
import { Badge } from '@/components/ui/badge';
import type { EntityFilter, StatusFilter, SortConfig, SortField } from '@/types/moderation';
import type { EntityFilter, StatusFilter } from '@/types/moderation';
interface ActiveFiltersDisplayProps {
entityFilter: EntityFilter;
statusFilter: StatusFilter;
sortConfig: SortConfig;
defaultEntityFilter?: EntityFilter;
defaultStatusFilter?: StatusFilter;
defaultSortField?: SortField;
}
const getEntityFilterIcon = (filter: EntityFilter) => {
@@ -20,29 +18,17 @@ const getEntityFilterIcon = (filter: EntityFilter) => {
}
};
const getSortFieldLabel = (field: SortField): string => {
switch (field) {
case 'username': return 'Submitter';
case 'submission_type': return 'Type';
case 'escalated': return 'Escalated';
case 'status': return 'Status';
case 'created_at': return 'Date';
default: return field;
}
};
// Removed - sorting functionality deleted
export const ActiveFiltersDisplay = ({
entityFilter,
statusFilter,
sortConfig,
statusFilter,
defaultEntityFilter = 'all',
defaultStatusFilter = 'pending',
defaultSortField = 'created_at'
defaultStatusFilter = 'pending'
}: ActiveFiltersDisplayProps) => {
const hasActiveFilters =
entityFilter !== defaultEntityFilter ||
statusFilter !== defaultStatusFilter ||
sortConfig.field !== defaultSortField;
statusFilter !== defaultStatusFilter;
if (!hasActiveFilters) return null;
@@ -60,12 +46,6 @@ export const ActiveFiltersDisplay = ({
{statusFilter}
</Badge>
)}
{sortConfig.field !== defaultSortField && (
<Badge variant="secondary" className="flex items-center gap-1">
{sortConfig.direction === 'asc' ? <ArrowUp className="w-3 h-3" /> : <ArrowDown className="w-3 h-3" />}
Sort: {getSortFieldLabel(sortConfig.field)}
</Badge>
)}
</div>
);
};

View File

@@ -112,11 +112,9 @@ export const ModerationQueue = forwardRef<ModerationQueueRef>((props, ref) => {
<QueueFilters
activeEntityFilter={queueManager.filters.entityFilter}
activeStatusFilter={queueManager.filters.statusFilter}
sortConfig={queueManager.sort.config}
isMobile={isMobile}
onEntityFilterChange={queueManager.filters.setEntityFilter}
onStatusFilterChange={queueManager.filters.setStatusFilter}
onSortConfigChange={queueManager.sort.setConfig}
onClearFilters={queueManager.filters.clearFilters}
showClearButton={queueManager.filters.hasActiveFilters}
/>
@@ -126,7 +124,6 @@ export const ModerationQueue = forwardRef<ModerationQueueRef>((props, ref) => {
<ActiveFiltersDisplay
entityFilter={queueManager.filters.entityFilter}
statusFilter={queueManager.filters.statusFilter}
sortConfig={queueManager.sort.config}
/>
)}

View File

@@ -2,17 +2,14 @@ import { Filter, MessageSquare, FileText, Image, X } from 'lucide-react';
import { Label } from '@/components/ui/label';
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select';
import { Button } from '@/components/ui/button';
import { QueueSortControls } from './QueueSortControls';
import type { EntityFilter, StatusFilter, SortConfig } from '@/types/moderation';
import type { EntityFilter, StatusFilter } from '@/types/moderation';
interface QueueFiltersProps {
activeEntityFilter: EntityFilter;
activeStatusFilter: StatusFilter;
sortConfig: SortConfig;
isMobile: boolean;
onEntityFilterChange: (filter: EntityFilter) => void;
onStatusFilterChange: (filter: StatusFilter) => void;
onSortConfigChange: (config: SortConfig) => void;
onClearFilters: () => void;
showClearButton: boolean;
}
@@ -29,11 +26,9 @@ const getEntityFilterIcon = (filter: EntityFilter) => {
export const QueueFilters = ({
activeEntityFilter,
activeStatusFilter,
sortConfig,
isMobile,
onEntityFilterChange,
onStatusFilterChange,
onSortConfigChange,
onClearFilters,
showClearButton
}: QueueFiltersProps) => {
@@ -112,13 +107,6 @@ export const QueueFilters = ({
</SelectContent>
</Select>
</div>
{/* Sort Controls */}
<QueueSortControls
sortConfig={sortConfig}
onSortChange={onSortConfigChange}
isMobile={isMobile}
/>
</div>
{/* Clear Filters Button */}

View File

@@ -1,84 +0,0 @@
import { ArrowUp, ArrowDown } from 'lucide-react';
import { Label } from '@/components/ui/label';
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select';
import { Button } from '@/components/ui/button';
import type { SortConfig, SortField } from '@/types/moderation';
interface QueueSortControlsProps {
sortConfig: SortConfig;
onSortChange: (config: SortConfig) => void;
isMobile?: boolean;
variant?: 'inline' | 'standalone';
showLabel?: boolean;
}
const getSortFieldLabel = (field: SortField): string => {
switch (field) {
case 'created_at': return 'Date Created';
case 'username': return 'Submitter';
case 'submission_type': return 'Type';
case 'status': return 'Status';
case 'escalated': return 'Escalated';
default: return field;
}
};
export const QueueSortControls = ({
sortConfig,
onSortChange,
isMobile = false,
variant = 'inline',
showLabel = true
}: QueueSortControlsProps) => {
const handleFieldChange = (field: SortField) => {
onSortChange({ ...sortConfig, field });
};
const handleDirectionToggle = () => {
onSortChange({
...sortConfig,
direction: sortConfig.direction === 'asc' ? 'desc' : 'asc'
});
};
return (
<div className={`space-y-2 ${isMobile ? 'w-full' : 'min-w-[180px]'}`}>
{showLabel && (
<Label className={`font-medium ${isMobile ? 'text-xs' : 'text-sm'}`}>
Sort By
</Label>
)}
<div className="flex gap-2">
<Select
value={sortConfig.field}
onValueChange={handleFieldChange}
>
<SelectTrigger className={isMobile ? "h-10 flex-1" : "flex-1"}>
<SelectValue />
</SelectTrigger>
<SelectContent>
<SelectItem value="created_at">{getSortFieldLabel('created_at')}</SelectItem>
<SelectItem value="username">{getSortFieldLabel('username')}</SelectItem>
<SelectItem value="submission_type">{getSortFieldLabel('submission_type')}</SelectItem>
<SelectItem value="status">{getSortFieldLabel('status')}</SelectItem>
<SelectItem value="escalated">{getSortFieldLabel('escalated')}</SelectItem>
</SelectContent>
</Select>
<Button
variant="outline"
size={isMobile ? "default" : "sm"}
onClick={handleDirectionToggle}
className={isMobile ? "h-10" : ""}
title={sortConfig.direction === 'asc' ? 'Sort Descending' : 'Sort Ascending'}
>
{sortConfig.direction === 'asc' ? (
<ArrowUp className="w-4 h-4" />
) : (
<ArrowDown className="w-4 h-4" />
)}
</Button>
</div>
</div>
);
};