@credithub/harlan-components 1.121.6 → 1.123.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/scr/scr.js +23 -12
- package/lib/cjs/index.js +24 -13
- package/lib/esm/index.js +24 -13
- package/package.json +1 -1
|
@@ -74,13 +74,15 @@ function ConsultaSCR(_a) {
|
|
|
74
74
|
var setData = useGlobalData().setData;
|
|
75
75
|
var _g = useState(false), dataUpdated = _g[0], setDataUpdated = _g[1];
|
|
76
76
|
var _h = useState(false), alertShown = _h[0], setAlertShown = _h[1];
|
|
77
|
-
var _j =
|
|
77
|
+
var _j = useState(false), isPdfLoading = _j[0], setIsPdfLoading = _j[1];
|
|
78
|
+
var _k = useState(null), pdfError = _k[0], setPdfError = _k[1];
|
|
79
|
+
var _l = consultasComplementaresContext !== null && consultasComplementaresContext !== void 0 ? consultasComplementaresContext : {}, consultasComplementares = _l.consultasComplementares, setConsultasComplementares = _l.setConsultasComplementares;
|
|
78
80
|
// O valor de dataBase já vem no formato "YYYY-MM" (ou o padrão "2025-01")
|
|
79
81
|
var period = ((_b = consultasComplementares === null || consultasComplementares === void 0 ? void 0 : consultasComplementares.scr) === null || _b === void 0 ? void 0 : _b.dataBase) || '2025-01';
|
|
80
|
-
var
|
|
82
|
+
var _m = useSafeQuery("SELECT FROM 'SCR'.'CONSULTA'", {
|
|
81
83
|
documento: documento,
|
|
82
84
|
period: period
|
|
83
|
-
}, !!((_c = consultasComplementares === null || consultasComplementares === void 0 ? void 0 : consultasComplementares.scr) === null || _c === void 0 ? void 0 : _c.consultaRealizada)), response =
|
|
85
|
+
}, !!((_c = consultasComplementares === null || consultasComplementares === void 0 ? void 0 : consultasComplementares.scr) === null || _c === void 0 ? void 0 : _c.consultaRealizada)), response = _m.response, isLoading = _m.isLoading, error = _m.error, loadingProgress = _m.loadingProgress;
|
|
84
86
|
var fetch = useFetch("SELECT FROM 'SCR'.'PDF'").fetch;
|
|
85
87
|
var isOpen = useToggle()[0];
|
|
86
88
|
var scrRef = useRef(null);
|
|
@@ -133,7 +135,9 @@ function ConsultaSCR(_a) {
|
|
|
133
135
|
refetch: function () { },
|
|
134
136
|
Section: Section,
|
|
135
137
|
progress: loadingProgress
|
|
136
|
-
}, title: "SCR", subtitle: "Resumo do Cliente", icon: ScrIcon, description:
|
|
138
|
+
}, title: "SCR", subtitle: "Resumo do Cliente", icon: ScrIcon, description: React.createElement(React.Fragment, null,
|
|
139
|
+
!error && (React.createElement(StatusMessage, { type: scr ? 'success' : 'default' }, description)),
|
|
140
|
+
pdfError && (React.createElement(StatusMessage, { type: "warning" }, pdfError))), onSuccess: function () { return (React.createElement(React.Fragment, null,
|
|
137
141
|
React.createElement(Result, null,
|
|
138
142
|
React.createElement(ResultContent, { desktop: "repeat(4, 1fr)", tablet: "repeat(3, 1fr)", mobile: "1fr 1fr" }, Array.isArray(basicData)
|
|
139
143
|
? basicData.map(function (data) { return (React.createElement(AddItemField, { key: data.label, name: data.label, value: data.value })); })
|
|
@@ -141,15 +145,21 @@ function ConsultaSCR(_a) {
|
|
|
141
145
|
React.createElement(ResultContent, { desktop: "repeat(4, 1fr)", tablet: "repeat(3, 1fr)", mobile: "1fr 1fr" },
|
|
142
146
|
React.createElement(AddItemField, { name: "Total de cr\u00E9ditos a vencer", value: scr === null || scr === void 0 ? void 0 : scr.response.expiringTotal }),
|
|
143
147
|
React.createElement(AddItemField, { name: "Total de cr\u00E9ditos vencidos", value: scr === null || scr === void 0 ? void 0 : scr.response.expiredTotal }),
|
|
144
|
-
React.createElement(Button, { style: { maxWidth: 'fit-content', minHeight: '0' }, onClick: function () { return __awaiter(_this, void 0, void 0, function () {
|
|
148
|
+
React.createElement(Button, { style: { maxWidth: 'fit-content', minHeight: '0' }, isLoading: isPdfLoading, disabled: isPdfLoading, onClick: function () { return __awaiter(_this, void 0, void 0, function () {
|
|
145
149
|
var win, response_1, fileBlob, file, fileURL_1, a, err_1;
|
|
146
150
|
return __generator(this, function (_a) {
|
|
147
151
|
switch (_a.label) {
|
|
148
152
|
case 0:
|
|
153
|
+
setPdfError(null);
|
|
149
154
|
win = window.open('', '_blank');
|
|
155
|
+
setIsPdfLoading(true);
|
|
150
156
|
_a.label = 1;
|
|
151
157
|
case 1:
|
|
152
|
-
_a.trys.push([1, 4, ,
|
|
158
|
+
_a.trys.push([1, 4, 5, 6]);
|
|
159
|
+
if (win && !win.closed) {
|
|
160
|
+
win.document.write("\n <!DOCTYPE html>\n <html>\n <head>\n <meta charset=\"utf-8\">\n <title>Preparando relat\u00F3rio</title>\n <style>\n @keyframes spin { to { transform: rotate(360deg); } }\n @keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.6; } }\n .spinner {\n width: 48px;\n height: 48px;\n border: 4px solid #e8e8e8;\n border-top-color: #0066cc;\n border-radius: 50%;\n animation: spin 0.9s linear infinite;\n }\n .card {\n background: #fff;\n border-radius: 12px;\n padding: 32px 40px;\n box-shadow: 0 4px 24px rgba(0,0,0,0.08);\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 20px;\n max-width: 320px;\n }\n .message { color: #333; font-size: 16px; animation: pulse 1.5s ease-in-out infinite; }\n .hint { color: #888; font-size: 13px; margin-top: 4px; }\n </style>\n </head>\n <body style=\"font-family: system-ui, -apple-system, sans-serif; display: flex; justify-content: center; align-items: center; min-height: 100vh; margin: 0; background: linear-gradient(180deg, #f0f4f8 0%, #e8ecf0 100%);\">\n <div class=\"card\">\n <div class=\"spinner\" aria-hidden=\"true\"></div>\n <div>\n <p class=\"message\">Preparando seu relat\u00F3rio detalhado</p>\n <p class=\"hint\">Aguarde, isso pode levar alguns segundos</p>\n </div>\n </div>\n </body>\n </html>\n ");
|
|
161
|
+
win.document.close();
|
|
162
|
+
}
|
|
153
163
|
return [4 /*yield*/, fetch({
|
|
154
164
|
uuid: scr === null || scr === void 0 ? void 0 : scr.uuidQuery
|
|
155
165
|
})];
|
|
@@ -167,9 +177,7 @@ function ConsultaSCR(_a) {
|
|
|
167
177
|
});
|
|
168
178
|
fileURL_1 = URL.createObjectURL(file);
|
|
169
179
|
if (win && !win.closed) {
|
|
170
|
-
// Janela aberta com sucesso: navega para o PDF
|
|
171
180
|
win.location.href = fileURL_1;
|
|
172
|
-
// Revoga o objectURL após um tempo para evitar leak
|
|
173
181
|
setTimeout(function () { return URL.revokeObjectURL(fileURL_1); }, 10000);
|
|
174
182
|
}
|
|
175
183
|
else {
|
|
@@ -181,10 +189,9 @@ function ConsultaSCR(_a) {
|
|
|
181
189
|
a.remove();
|
|
182
190
|
URL.revokeObjectURL(fileURL_1);
|
|
183
191
|
}
|
|
184
|
-
return [3 /*break*/,
|
|
192
|
+
return [3 /*break*/, 6];
|
|
185
193
|
case 4:
|
|
186
194
|
err_1 = _a.sent();
|
|
187
|
-
// Fecha a janela em branco se algo falhar após a abertura
|
|
188
195
|
if (win && !win.closed) {
|
|
189
196
|
try {
|
|
190
197
|
win.close();
|
|
@@ -192,8 +199,12 @@ function ConsultaSCR(_a) {
|
|
|
192
199
|
catch (_b) { }
|
|
193
200
|
}
|
|
194
201
|
console.error('Erro ao baixar PDF:', err_1);
|
|
195
|
-
|
|
196
|
-
|
|
202
|
+
setPdfError('Não foi possível gerar o relatório detalhado.');
|
|
203
|
+
return [3 /*break*/, 6];
|
|
204
|
+
case 5:
|
|
205
|
+
setIsPdfLoading(false);
|
|
206
|
+
return [7 /*endfinally*/];
|
|
207
|
+
case 6: return [2 /*return*/];
|
|
197
208
|
}
|
|
198
209
|
});
|
|
199
210
|
}); } }, "Baixar relat\u00F3rio detalhado"))),
|