feat: Implement button loading states

This commit is contained in:
gpt-engineer-app[bot]
2025-11-04 18:19:52 +00:00
parent 6b5be8a70b
commit cb01707c5e
11 changed files with 71 additions and 45 deletions

View File

@@ -25,6 +25,7 @@ export function ConflictResolutionDialog({
onResolve,
}: ConflictResolutionDialogProps) {
const [resolutions, setResolutions] = useState<Record<string, string>>({});
const [isApplying, setIsApplying] = useState(false);
const { user } = useAuth();
const handleResolutionChange = (itemId: string, action: string) => {
@@ -44,6 +45,7 @@ export function ConflictResolutionDialog({
return;
}
setIsApplying(true);
const { resolveConflicts } = await import('@/lib/conflictResolutionService');
try {
@@ -67,6 +69,8 @@ export function ConflictResolutionDialog({
userId: user.id,
metadata: { conflictCount: conflicts.length }
});
} finally {
setIsApplying(false);
}
};
@@ -119,10 +123,10 @@ export function ConflictResolutionDialog({
</div>
<DialogFooter>
<Button variant="outline" onClick={() => onOpenChange(false)}>
<Button variant="outline" onClick={() => onOpenChange(false)} disabled={isApplying}>
Cancel
</Button>
<Button onClick={handleApply} disabled={!allConflictsResolved}>
<Button onClick={handleApply} loading={isApplying} loadingText="Applying..." disabled={!allConflictsResolved}>
Apply & Approve
</Button>
</DialogFooter>