@credithub/harlan-components 1.91.5 → 1.91.7

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.
@@ -46,9 +46,9 @@ import PartnerList from './partnerList';
46
46
  var Partners = function (_a) {
47
47
  var onClickQSA = _a.onClickQSA;
48
48
  var ctx = useContext(Queries.Finder);
49
- var rfbResponse = useConsultaRfb().rfbResponse;
49
+ var _b = useConsultaRfb(), rfbResponse = _b.rfbResponse, updatedOnce = _b.updatedOnce, error = _b.error;
50
50
  var setData = useGlobalData().setData;
51
- var _b = useState(false), dataUpdated = _b[0], setDataUpdated = _b[1];
51
+ var _c = useState(false), dataUpdated = _c[0], setDataUpdated = _c[1];
52
52
  useEffect(function () {
53
53
  if (ctx.type === RequestStatus.Success && !dataUpdated && ctx.document) {
54
54
  var data = ctx.document;
@@ -80,9 +80,7 @@ var Partners = function (_a) {
80
80
  }, [ctx, rfbResponse, dataUpdated, setData]);
81
81
  var response = function (data) {
82
82
  var partnersNode = __spreadArray(__spreadArray([], XPathUtils.selectArray('//quadroSocietario/quadroSocietario', data), true), XPathUtils.selectArray('//participacoesEmpresas/participacoesEmpresas', data), true);
83
- var partners = (partnersNode.length
84
- ? partnersNode
85
- : XPathUtils.selectArray('//RFB/socios/socio', rfbResponse)).map(function (partner) {
83
+ var formatPartner = function (partner) {
86
84
  var documento = XPathUtils.select('string(documento)', partner);
87
85
  return {
88
86
  nome: XPathUtils.select('string(nome)', partner) || partner.textContent,
@@ -93,7 +91,12 @@ var Partners = function (_a) {
93
91
  dividasPublicas: documento ? (React.createElement(PartnerDividasPublicas, { documento: documento })) : null,
94
92
  protestos: documento ? React.createElement(PartnerProtestos, { documento: documento }) : null
95
93
  };
96
- });
94
+ };
95
+ var partnersFinder = partnersNode.map(formatPartner);
96
+ var partnersRfb = XPathUtils.selectArray('//RFB/socios/socio', rfbResponse).map(formatPartner);
97
+ var partners = !updatedOnce ? (partnersFinder.length
98
+ ? partnersFinder
99
+ : partnersRfb) : error ? [] : partnersRfb.map(function (partnerRfb) { return partnersFinder.find(function (partnerFinder) { return partnerFinder.nome === partnerRfb.nome; }) || partnerRfb; });
97
100
  var children = (partners === null || partners === void 0 ? void 0 : partners.length) ? (React.createElement(Result, null,
98
101
  React.createElement(PartnerList, { onClickQSA: onClickQSA, partners: partners }))) : null;
99
102
  return {
@@ -101,6 +104,6 @@ var Partners = function (_a) {
101
104
  description: !(partners === null || partners === void 0 ? void 0 : partners.length) && (React.createElement(StatusMessage, null, "N\u00E3o h\u00E1 informa\u00E7\u00F5es de Quadro Societ\u00E1rio"))
102
105
  };
103
106
  };
104
- return (React.createElement(Section, { ctx: ctx, title: "Quadro Societ\u00E1rio", minimized: false, subtitle: "Informa\u00E7\u00F5es sobre o quadro societ\u00E1rio da pessoa pesquisada.", icon: QuadroSocietarioIcon, isError: function () { return response(undefined); }, onSuccess: response }));
107
+ return (React.createElement(Section, { ctx: ctx, title: "Quadro Societ\u00E1rio", minimized: false, subtitle: "Informa\u00E7\u00F5es sobre o quadro societ\u00E1rio da pessoa pesquisada.", icon: QuadroSocietarioIcon, isError: function () { return response(undefined); }, onSuccess: function (data) { return response(data); } }));
105
108
  };
106
109
  export default Partners;
@@ -28,7 +28,6 @@ import ProtestosGeraisIcon from '../../assets/icones/protestosGerais';
28
28
  import ProtestosImpostosIcon from '../../assets/icones/protestosImpostos';
29
29
  import { useGlobalData } from '../../contexts/globalDataContext';
30
30
  import { classifyProtestos, useProtestosClassification } from '../../hooks/useProtestosClassification';
31
- import { extractIntegerFromText } from '../../utils/number';
32
31
  import { parseProtesto } from '../../utils/parseProtesto';
33
32
  import XPathUtils from '../../utils/xpath';
34
33
  import React, { useCallback, useContext, useEffect, useMemo, useState } from 'react';
@@ -50,7 +49,6 @@ var Protestos = function () {
50
49
  var ctxLiminar = useContext(Queries.Liminar);
51
50
  var _b = useGlobalData(), globalData = _b.data, setData = _b.setData;
52
51
  var _c = useState(false), dataUpdated = _c[0], setDataUpdated = _c[1];
53
- // Calcula o total e memorizamos esse valor para evitar recalcular a cada render
54
52
  var total = useMemo(function () {
55
53
  var _a;
56
54
  if ((ctxLiminar === null || ctxLiminar === void 0 ? void 0 : ctxLiminar.type) === RequestStatus.Success &&
@@ -59,7 +57,6 @@ var Protestos = function () {
59
57
  }
60
58
  return 0;
61
59
  }, [ctxLiminar === null || ctxLiminar === void 0 ? void 0 : ctxLiminar.type, ctxLiminar === null || ctxLiminar === void 0 ? void 0 : ctxLiminar.document]);
62
- // converte XML → Protesto[]
63
60
  var protestosAll = useMemo(function () {
64
61
  if (!ctx.document)
65
62
  return [];
@@ -67,8 +64,6 @@ var Protestos = function () {
67
64
  }, [ctx.document]);
68
65
  var iaOverrides = (_a = globalData.protestosData) === null || _a === void 0 ? void 0 : _a.iaOverrides;
69
66
  var _d = useProtestosClassification(protestosAll, iaOverrides), protestosDeCredito = _d.protestosDeCredito, protestosDeImposto = _d.protestosDeImposto, protestosGerais = _d.protestosGerais;
70
- // Total de protestos
71
- var registros = protestosAll.length;
72
67
  useEffect(function () {
73
68
  if ((ctx === null || ctx === void 0 ? void 0 : ctx.type) === RequestStatus.Error ||
74
69
  (ctx === null || ctx === void 0 ? void 0 : ctx.type) === RequestStatus.Empty) {
@@ -76,15 +71,11 @@ var Protestos = function () {
76
71
  return;
77
72
  }
78
73
  }, [ctx.type]);
79
- // Atualiza o contexto global com os protestos classificados
80
74
  useEffect(function () {
81
75
  if (dataUpdated || !ctx.document)
82
76
  return;
83
- var registrosText = XPathUtils.select('string(//registros)', ctx.document);
77
+ var registros = protestosAll.length;
84
78
  var haveException = /Falha na integra/gi.test(XPathUtils.select('string(//raw)', ctx.document));
85
- var registros = haveException
86
- ? extractIntegerFromText(registrosText) + total
87
- : extractIntegerFromText(registrosText);
88
79
  if (haveException) {
89
80
  setData(function (prevState) { return (__assign(__assign({}, prevState), { protestosData: { isLoaded: true } })); });
90
81
  setDataUpdated(true);
@@ -105,10 +96,8 @@ var Protestos = function () {
105
96
  });
106
97
  setDataUpdated(true);
107
98
  }, [
108
- ctx.type,
109
99
  ctx.document,
110
100
  dataUpdated,
111
- total,
112
101
  setData,
113
102
  protestosDeCredito,
114
103
  protestosDeImposto,
@@ -119,11 +108,9 @@ var Protestos = function () {
119
108
  setData(function (prevState) { return (__assign(__assign({}, prevState), { protestosData: __assign(__assign({}, (prevState.protestosData || {})), { isLoaded: false }) })); });
120
109
  }
121
110
  }, [ctx.type]);
122
- // Callback memorizado para a renderização do conteúdo em caso de sucesso
123
111
  var handleSuccess = useCallback(function (data) {
124
- var registrosText = XPathUtils.select('string(//registros)', data);
125
112
  var parsed = XPathUtils.selectArray('//body//protesto', data).map(parseProtesto);
126
- // função pura – não adiciona hooks extras dentro de Section
113
+ var registros = parsed.length;
127
114
  var _a = classifyProtestos(parsed, iaOverrides), protestosDeCredito = _a.protestosDeCredito, protestosDeImposto = _a.protestosDeImposto, protestosGerais = _a.protestosGerais;
128
115
  var elements = [
129
116
  {