Reverted to commit cd76e30ed9

This commit is contained in:
gpt-engineer-app[bot]
2025-09-30 14:08:41 +00:00
parent b0d3af234e
commit a7288a0d4c
5 changed files with 32 additions and 664 deletions

View File

@@ -4,10 +4,8 @@ import { Button } from '@/components/ui/button';
import { RadioGroup, RadioGroupItem } from '@/components/ui/radio-group';
import { Label } from '@/components/ui/label';
import { Alert, AlertDescription } from '@/components/ui/alert';
import { AlertCircle, Loader2 } from 'lucide-react';
import { toast } from 'sonner';
import { type DependencyConflict, type SubmissionItemWithDeps, resolveConflicts } from '@/lib/submissionItemsService';
import { useAuth } from '@/hooks/useAuth';
import { AlertCircle } from 'lucide-react';
import { type DependencyConflict, type SubmissionItemWithDeps } from '@/lib/submissionItemsService';
interface ConflictResolutionDialogProps {
open: boolean;
@@ -24,9 +22,7 @@ export function ConflictResolutionDialog({
items,
onResolve,
}: ConflictResolutionDialogProps) {
const { user } = useAuth();
const [resolutions, setResolutions] = useState<Record<string, string>>({});
const [isProcessing, setIsProcessing] = useState(false);
const handleResolutionChange = (itemId: string, action: string) => {
setResolutions(prev => ({ ...prev, [itemId]: action }));
@@ -36,36 +32,10 @@ export function ConflictResolutionDialog({
conflict => resolutions[conflict.itemId]
);
const handleApply = async () => {
if (!user) {
toast.error('You must be logged in to resolve conflicts');
return;
}
setIsProcessing(true);
try {
const { updatedItems, newConflicts } = await resolveConflicts(
conflicts,
resolutions,
items,
user.id
);
if (newConflicts.length > 0) {
toast.error(`Resolution completed with ${newConflicts.length} remaining conflicts`);
} else {
toast.success('All conflicts resolved successfully');
}
onResolve();
onOpenChange(false);
} catch (error) {
console.error('Error resolving conflicts:', error);
toast.error(error instanceof Error ? error.message : 'Failed to resolve conflicts');
} finally {
setIsProcessing(false);
}
const handleApply = () => {
// TODO: Apply resolutions
onResolve();
onOpenChange(false);
};
return (
@@ -113,12 +83,11 @@ export function ConflictResolutionDialog({
</div>
<DialogFooter>
<Button variant="outline" onClick={() => onOpenChange(false)} disabled={isProcessing}>
<Button variant="outline" onClick={() => onOpenChange(false)}>
Cancel
</Button>
<Button onClick={handleApply} disabled={!allConflictsResolved || isProcessing}>
{isProcessing && <Loader2 className="mr-2 h-4 w-4 animate-spin" />}
{isProcessing ? 'Processing...' : 'Apply & Approve'}
<Button onClick={handleApply} disabled={!allConflictsResolved}>
Apply & Approve
</Button>
</DialogFooter>
</DialogContent>