20 lines
755 B
React
20 lines
755 B
React
export default function Modal({ open, title, onClose, children, footer, width = 600 }) {
|
|
if (!open) return null;
|
|
return (
|
|
<div className="modal-backdrop">
|
|
<div
|
|
className="card"
|
|
style={{ width: '100%', maxWidth: width, maxHeight: '90vh', overflow: 'auto' }}
|
|
onClick={(e) => e.stopPropagation()}
|
|
>
|
|
<div style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center', marginBottom: 12 }}>
|
|
<h3 style={{ margin: 0 }}>{title}</h3>
|
|
<button className="ghost" onClick={onClose}>✕</button>
|
|
</div>
|
|
{children}
|
|
{footer && <div style={{ marginTop: 16, display: 'flex', gap: 8, justifyContent: 'flex-end' }}>{footer}</div>}
|
|
</div>
|
|
</div>
|
|
);
|
|
}
|