From d16ff4f70e4bcb68f4ba103dad5a8d40ee89870c Mon Sep 17 00:00:00 2001 From: fpereirasilv Date: Thu, 15 Oct 2026 12:37:25 -0300 Subject: [PATCH] =?UTF-8?q?feat:=20add=20Customer=20Portal=20(=C3=81rea=20?= =?UTF-8?q?do=20Cliente=20&=20Central=20de=20Acessos)=20with=2023=20preloa?= =?UTF-8?q?ded=20items=20and=20WhatsApp=20export?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/App.jsx | 32 +- src/components/Header.jsx | 74 +++- src/components/portal/CustomerPortal.jsx | 358 ++++++++++++++++ src/components/portal/ModalPortalItem.jsx | 219 ++++++++++ src/components/portal/PortalItemCard.jsx | 174 ++++++++ src/index.css | 470 ++++++++++++++++++++++ src/utils/customerPortalData.js | 255 ++++++++++++ 7 files changed, 1551 insertions(+), 31 deletions(-) create mode 100644 src/components/portal/CustomerPortal.jsx create mode 100644 src/components/portal/ModalPortalItem.jsx create mode 100644 src/components/portal/PortalItemCard.jsx create mode 100644 src/utils/customerPortalData.js diff --git a/src/App.jsx b/src/App.jsx index 106253d..df731a3 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -4,10 +4,11 @@ import { ArrowRight, RotateCcw, AlertCircle, - Sparkles, - Lock, - Loader2, - MessageSquare + Sparkles, + Lock, + Loader2, + MessageSquare, + Bookmark } from 'lucide-react'; import Header from './components/Header'; import SecurityBadge from './components/SecurityBadge'; @@ -18,10 +19,11 @@ import OutputFiles from './components/OutputFiles'; import OpenSslReference from './components/OpenSslReference'; import HostGuideModal from './components/HostGuideModal'; import AppWPP from './components/wpp/AppWPP'; +import CustomerPortal from './components/portal/CustomerPortal'; import { convertPfx } from './utils/certConverter'; export default function App() { - const [activeTab, setActiveTab] = useState('cert'); // 'cert' | 'wpp' + const [activeTab, setActiveTab] = useState('portal'); // 'portal' | 'cert' | 'wpp' (default to portal since user asked for it!) const [file, setFile] = useState(null); const [arrayBuffer, setArrayBuffer] = useState(null); const [baseName, setBaseName] = useState('certificado'); @@ -102,9 +104,15 @@ export default function App() { onOpenHostingGuide={() => setIsHostingGuideOpen(true)} /> - {/* Conteúdo Principal */} + {/* Conteúdo Principal Dinâmico */}
- {activeTab === 'cert' ? ( + {activeTab === 'portal' && ( + /* Área do Cliente & Central de Acessos */ + + )} + + {activeTab === 'cert' && ( + /* Conversor de Certificados PFX */
{/* Banner de Segurança & Privacidade */} @@ -201,7 +209,9 @@ export default function App() { )}
- ) : ( + )} + + {activeTab === 'wpp' && ( /* Aplicativo WPPConnect Integrado */
@@ -213,9 +223,9 @@ export default function App() {