Deploy Inicial do SteelCheck com Docker Build Automatizado

This commit is contained in:
2026-06-23 00:22:53 +00:00
parent 8fc62aeb0f
commit e82656e5c2
5 changed files with 111 additions and 87 deletions
+15 -11
View File
@@ -18,7 +18,7 @@ const App: React.FC = () => {
const [provider, setProvider] = useState<AIProvider>('gemini');
const [model, setModel] = useState<string>('gemini-2.5-flash');
const [hasKey, setHasKey] = useState<boolean>(false);
const [reportData, setReportData] = useState<ReportData | null>(null);
const [reportsData, setReportsData] = useState<ReportData[] | null>(null);
const [isLoading, setIsLoading] = useState(false);
const [error, setError] = useState<string | null>(null);
@@ -40,7 +40,7 @@ const App: React.FC = () => {
const handleFileChange = useCallback((selectedFile: File | null) => {
setFile(selectedFile);
if (!selectedFile) {
setReportData(null);
setReportsData(null);
setError(null);
}
}, []);
@@ -79,7 +79,7 @@ const App: React.FC = () => {
}
setIsLoading(true);
setError(null);
setReportData(null);
setReportsData(null);
try {
const data = await analyzeCertificate({
provider,
@@ -88,7 +88,7 @@ const App: React.FC = () => {
file,
endpoint: provider === 'ollama' ? endpoint : undefined
});
setReportData(data);
setReportsData(data);
} catch (err) {
if (err instanceof Error) {
if (err.message.includes('API key') || err.message.includes('not valid') || err.message.includes('invalid')) {
@@ -107,7 +107,7 @@ const App: React.FC = () => {
const handleReset = useCallback(() => {
setFile(null);
setReportData(null);
setReportsData(null);
setIsLoading(false);
setError(null);
}, []);
@@ -120,8 +120,8 @@ const App: React.FC = () => {
}, [handleReset]);
const handleExport = (action: 'preview' | 'download') => {
if (reportData) {
const fileName = `Relatorio_SteelCheck_${reportData.identification.certificateNumber || 'analise'}`;
if (reportsData && reportsData.length > 0) {
const fileName = `Relatorio_SteelCheck_${reportsData[0].identification.certificateNumber || 'analise'}`;
exportAsPdf('printable-report-container', fileName, action);
}
};
@@ -134,7 +134,7 @@ const App: React.FC = () => {
<main className="container mx-auto p-4 sm:p-6 md:p-8 max-w-7xl">
{!hasKey ? (
<ApiKeySetup onKeySave={handleKeySave} />
) : !reportData ? (
) : !reportsData ? (
<div className="max-w-2xl mx-auto pt-8">
<div className="bg-white/70 dark:bg-slate-800/60 backdrop-blur-md border border-white/20 dark:border-slate-700/50 shadow-xl p-6 sm:p-10 rounded-2xl">
<div className="text-center mb-10">
@@ -191,14 +191,18 @@ const App: React.FC = () => {
Baixar Relatório
</button>
</div>
<ReportDisplay report={reportData} />
<div className="flex flex-col gap-8">
{reportsData.map((report, idx) => (
<ReportDisplay key={idx} report={report} />
))}
</div>
</div>
)}
</main>
{reportData && (
{reportsData && (
<div className="absolute -left-[9999px] top-0 opacity-0" aria-hidden="true">
<PrintableReport report={reportData} />
<PrintableReport reports={reportsData} />
</div>
)}
</div>