import React from 'react'; import type { GraphMeta } from '../types'; interface ReviewFooterProps { meta: GraphMeta; onApprove: () => void; onReject: () => void; } export const ReviewFooter: React.FC = ({ meta, onApprove, onReject }) => { const [isApproving, setIsApproving] = React.useState(false); const [isRejecting, setIsRejecting] = React.useState(false); const [status, setStatus] = React.useState<'idle' | 'approved' | 'rejected'>('idle'); if (!meta.hasChanges) { return null; } if (status === 'approved') { return (
✓ Changes approved! Lockfile updated. You can close this window.
); } if (status === 'rejected') { return (
✕ Changes rejected. You can close this window.
); } const handleApprove = async () => { setIsApproving(true); try { await onApprove(); setStatus('approved'); } catch (error) { alert('Failed to approve changes: ' + (error as Error).message); setIsApproving(false); } }; const handleReject = async () => { setIsRejecting(true); try { await onReject(); setStatus('rejected'); } catch (error) { alert('Failed to reject changes: ' + (error as Error).message); setIsRejecting(false); } }; return (
Pending changes: {meta.addedCount > 0 && ( +{meta.addedCount} added )} {meta.removedCount > 0 && ( −{meta.removedCount} removed )} {meta.modifiedCount > 0 && ( ~{meta.modifiedCount} modified )}
); };