feat: initial commit - CertConverter PFX & AppWPP (React)

This commit is contained in:
2026-10-15 12:05:56 -03:00
commit 512cb4ea7e
42 changed files with 7150 additions and 0 deletions
+71
View File
@@ -0,0 +1,71 @@
import React from 'react';
import { X, AlertTriangle, Trash2, ShieldAlert } from 'lucide-react';
export default function ModalConfirm({
isOpen,
onClose,
onConfirm,
title = 'Confirmar Ação',
message,
description,
confirmText = 'Confirmar',
cancelText = 'Cancelar',
type = 'warning', // 'warning' | 'danger'
icon: CustomIcon
}) {
if (!isOpen) return null;
const isDanger = type === 'danger';
const IconComponent = CustomIcon || (isDanger ? Trash2 : AlertTriangle);
return (
<div className="modal-backdrop" onClick={onClose}>
<div
className="modal-dialog modal-confirm-dialog"
onClick={(e) => e.stopPropagation()}
style={{ maxWidth: '460px' }}
>
<div className="modal-header">
<div className="modal-title-box">
<div className={`modal-confirm-icon-box ${isDanger ? 'icon-box-danger' : 'icon-box-warning'}`}>
<IconComponent size={20} />
</div>
<h3 className="modal-title">{title}</h3>
</div>
<button type="button" className="modal-close-btn" onClick={onClose} title="Fechar">
<X size={20} />
</button>
</div>
<div className="modal-body" style={{ padding: '1.5rem' }}>
<p className="modal-confirm-message">{message}</p>
{description && (
<p className="modal-confirm-desc">{description}</p>
)}
</div>
<div className="modal-footer" style={{ display: 'flex', justifyContent: 'flex-end', gap: '0.75rem' }}>
<button
type="button"
className="btn-modal-cancel"
onClick={onClose}
>
{cancelText}
</button>
<button
type="button"
className={`btn-modal-action-confirm ${isDanger ? 'btn-confirm-danger' : 'btn-confirm-warning'}`}
onClick={() => {
onConfirm();
onClose();
}}
>
<IconComponent size={16} />
<span>{confirmText}</span>
</button>
</div>
</div>
</div>
);
}