+ {/* Loading */}
+ {cleanupLoading && (
+
+
+
{cleanupPhase === 'idle' ? 'Analysiere Duplikate...' : 'Bereinige Duplikate...'}
+
+ )}
+
+ {/* Error */}
+ {cleanupError && (
+
+
+ {cleanupError}
+
+ )}
+
+ {/* Results */}
+ {cleanupResult && !cleanupLoading && (
+ <>
+ {/* Summary Cards */}
+
+
+
{cleanupResult.totalRules}
+
Regeln total
+
+
+
{cleanupResult.uniqueSignatures}
+
Eindeutige Regeln
+
+
0 ? '#fff5f5' : '#f0fff4', borderRadius: '8px', textAlign: 'center', border: `1px solid ${cleanupResult.duplicateGroups > 0 ? '#fc8181' : '#9ae6b4'}` }}>
+
0 ? '#c53030' : '#2f855a' }}>{cleanupResult.duplicateGroups}
+
Duplikat-Gruppen
+
+
0 ? '#fff5f5' : '#f0fff4', borderRadius: '8px', textAlign: 'center', border: `1px solid ${cleanupResult.duplicateRulesToDelete > 0 ? '#fc8181' : '#9ae6b4'}` }}>
+
0 ? '#c53030' : '#2f855a' }}>
+ {cleanupPhase === 'done' ? cleanupResult.deletedCount : cleanupResult.duplicateRulesToDelete}
+
+
+ {cleanupPhase === 'done' ? 'Geloescht' : 'Zu loeschen'}
+
+
+
+
+ {/* Status Message */}
+ {cleanupPhase === 'done' && (
+
+
+ {cleanupResult.deletedCount} doppelte Regeln wurden erfolgreich entfernt.
+
+ )}
+
+ {cleanupPhase === 'preview' && cleanupResult.duplicateGroups === 0 && (
+
+
+ Keine Duplikate gefunden. Alles sauber!
+
+ )}
+
+ {/* Details Table */}
+ {cleanupResult.details.length > 0 && (
+
+
+ Duplikat-Details {cleanupResult.details.length < cleanupResult.duplicateGroups && `(${cleanupResult.details.length} von ${cleanupResult.duplicateGroups})`}
+
+
+
+
+
+ | Kontext |
+ Item |
+ Total |
+ Duplikate |
+
+
+
+ {cleanupResult.details.map((group, idx) => (
+
+ |
+
+ {group.context}
+
+ |
+
+
+ {group.item}
+
+ |
+ {group.totalCount} |
+ {group.deleteCount} |
+
+ ))}
+
+
+
+
+ )}
+ >
+ )}
+