@credithub/harlan-components 1.41.0 → 1.42.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.
@@ -134,28 +134,27 @@ var GenerativeAI = function (_a) {
134
134
  setQueryEnabled(false);
135
135
  }
136
136
  };
137
+ var isGlobalDataLoaded = useMemo(function () {
138
+ var loaded = globalData.documentHistory !== undefined &&
139
+ globalData.documentHistory !== null;
140
+ return loaded;
141
+ }, [globalData]);
137
142
  useEffect(function () {
138
- var timeoutId;
139
- if (globalData && documento) {
140
- timeoutId = setTimeout(function () {
141
- try {
142
- var relevantData = selectRelevantData(globalData);
143
- var serialized = flattenData(relevantData);
144
- setSerializedData(serialized);
145
- setQueryEnabled(true);
146
- setHasMadeInitialRequest(true);
147
- }
148
- catch (error) {
149
- console.error('Erro ao preparar os dados para a API:', error);
150
- setSerializedData('{}');
151
- setQueryEnabled(false);
152
- }
153
- }, 3000);
143
+ if (documento && isGlobalDataLoaded && !hasMadeInitialRequest) {
144
+ try {
145
+ var relevantData = selectRelevantData(globalData);
146
+ var serialized = flattenData(relevantData);
147
+ setSerializedData(serialized);
148
+ setQueryEnabled(true);
149
+ setHasMadeInitialRequest(true);
150
+ }
151
+ catch (error) {
152
+ console.error('Erro ao preparar os dados para a API:', error);
153
+ setSerializedData('{}');
154
+ setQueryEnabled(false);
155
+ }
154
156
  }
155
- return function () {
156
- clearTimeout(timeoutId);
157
- };
158
- }, [documento, globalData, hasMadeInitialRequest]);
157
+ }, [documento, isGlobalDataLoaded, hasMadeInitialRequest]);
159
158
  var queryData = useMemo(function () {
160
159
  if (!queryEnabled || !serializedData || serializedData === '{}')
161
160
  return undefined;
@@ -3,7 +3,7 @@ export interface DataContextType<T> {
3
3
  data: T;
4
4
  setData: (update: Partial<T> | ((prevData: T) => Partial<T>)) => void;
5
5
  }
6
- declare function createDataContext<T>(defaultValue: T): {
6
+ declare function createDataContext<T extends object>(defaultValue?: Partial<T>): {
7
7
  DataProvider: FunctionComponent<{
8
8
  children: ReactNode;
9
9
  }>;
@@ -12,22 +12,33 @@ var __assign = (this && this.__assign) || function () {
12
12
  // src/contexts/createDataContext.tsx
13
13
  import React, { createContext, useContext, useState } from 'react';
14
14
  function createDataContext(defaultValue) {
15
+ if (defaultValue === void 0) { defaultValue = {}; }
15
16
  var DataContext = createContext({
16
17
  data: defaultValue,
17
18
  setData: function () { }
18
19
  });
20
+ var createProxy = function (data) {
21
+ return new Proxy(data, {
22
+ get: function (target, prop) {
23
+ var value = target[prop];
24
+ if (value === undefined || value === null) {
25
+ return undefined;
26
+ }
27
+ return value;
28
+ },
29
+ set: function (target, prop, value) {
30
+ target[prop] = value;
31
+ return true;
32
+ }
33
+ });
34
+ };
19
35
  var DataProvider = function (_a) {
20
36
  var children = _a.children;
21
- var _b = useState(defaultValue), data = _b[0], setData = _b[1];
37
+ var _b = useState(createProxy(defaultValue)), data = _b[0], setData = _b[1];
22
38
  var updateData = function (update) {
23
39
  setData(function (prevData) {
24
40
  var newState = typeof update === 'function' ? update(prevData) : update;
25
- for (var key in newState) {
26
- if (newState[key] !== prevData[key]) {
27
- return __assign(__assign({}, prevData), newState);
28
- }
29
- }
30
- return prevData;
41
+ return createProxy(__assign(__assign({}, prevData), newState));
31
42
  });
32
43
  };
33
44
  return (React.createElement(DataContext.Provider, { value: { data: data, setData: updateData } }, children));
@@ -1,10 +1,3 @@
1
1
  import createDataContext from './createDataContext';
2
- var initialState = {
3
- protestos: 0,
4
- ultimoRegistroCCF: '',
5
- ccf: 0,
6
- dividasPublicas: 0,
7
- processosJuridicos: 0
8
- };
9
- var _a = createDataContext(initialState), GlobalDataProvider = _a.DataProvider, useGlobalData = _a.useData;
2
+ var _a = createDataContext({}), GlobalDataProvider = _a.DataProvider, useGlobalData = _a.useData;
10
3
  export { GlobalDataProvider, useGlobalData };