prostgles-client 4.0.381 → 4.0.383
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/SyncedTable/createSync.d.ts +2 -0
- package/dist/SyncedTable/createSync.d.ts.map +1 -1
- package/dist/SyncedTable/createSync.js +12 -2
- package/dist/SyncedTable/createSyncStateUtils.d.ts.map +1 -1
- package/dist/SyncedTable/createSyncStateUtils.js +0 -53
- package/dist/SyncedTable/createSyncSubscriptionManager.d.ts +2 -1
- package/dist/SyncedTable/createSyncSubscriptionManager.d.ts.map +1 -1
- package/dist/SyncedTable/createSyncSubscriptionManager.js +4 -2
- package/dist/getSyncHandlerV2.d.ts +1 -0
- package/dist/getSyncHandlerV2.d.ts.map +1 -1
- package/dist/getSyncHandlerV2.js +15 -4
- package/dist/hooks/useEffectDeep.d.ts +1 -1
- package/dist/hooks/useEffectDeep.d.ts.map +1 -1
- package/dist/hooks/useEffectDeep.js +6 -4
- package/dist/index.umd.js +1 -1
- package/dist/prostgles.d.ts.map +1 -1
- package/dist/prostgles.js +2 -3
- package/package.json +1 -1
|
@@ -2,8 +2,10 @@ import { WAL } from "prostgles-types/dist/WAL";
|
|
|
2
2
|
import type { Socket } from "socket.io-client";
|
|
3
3
|
import { type SyncedTableOptions } from "./SyncedTable";
|
|
4
4
|
export declare const createSync: (socket: Socket, options: Omit<SyncedTableOptions, "onReady">) => Promise<{
|
|
5
|
+
reAttach: () => Promise<void>;
|
|
5
6
|
sync: <T extends import("prostgles-types").AnyObject = import("prostgles-types").AnyObject>(onChange: import("./SyncedTable").MultiChangeListener<T>, handlesOnData?: boolean) => import("./SyncedTable").MultiSyncHandles<T>;
|
|
6
7
|
syncOne: <T extends import("prostgles-types").AnyObject = import("prostgles-types").AnyObject, Full extends boolean = false>(idObj: Partial<T>, onChange: import("./SyncedTable").SingleChangeListener<T, Full>, handlesOnData?: boolean) => import("./SyncedTable").SingleSyncHandles<T, Full>;
|
|
7
8
|
notifyWal: WAL;
|
|
9
|
+
notifyCurrentData: () => void;
|
|
8
10
|
}>;
|
|
9
11
|
//# sourceMappingURL=createSync.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createSync.d.ts","sourceRoot":"","sources":["../../lib/SyncedTable/createSync.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,GAAG,EAAgB,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAI/C,OAAO,EAIL,KAAK,kBAAkB,EACxB,MAAM,eAAe,CAAC;AAEvB,eAAO,MAAM,UAAU,GAAU,QAAQ,MAAM,EAAE,SAAS,IAAI,CAAC,kBAAkB,EAAE,SAAS,CAAC
|
|
1
|
+
{"version":3,"file":"createSync.d.ts","sourceRoot":"","sources":["../../lib/SyncedTable/createSync.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,GAAG,EAAgB,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAI/C,OAAO,EAIL,KAAK,kBAAkB,EACxB,MAAM,eAAe,CAAC;AAEvB,eAAO,MAAM,UAAU,GAAU,QAAQ,MAAM,EAAE,SAAS,IAAI,CAAC,kBAAkB,EAAE,SAAS,CAAC;;;;;;EAsP5F,CAAC"}
|
|
@@ -58,6 +58,9 @@ const createSync = async (socket, options) => {
|
|
|
58
58
|
delta: { ...d },
|
|
59
59
|
}));
|
|
60
60
|
await upsert(updateItems, true);
|
|
61
|
+
if (!updateItems.length) {
|
|
62
|
+
subscriptionManager.notifyCurrentData();
|
|
63
|
+
}
|
|
61
64
|
}
|
|
62
65
|
}
|
|
63
66
|
else if (onUpdatesParams.state === "syncing") {
|
|
@@ -80,7 +83,8 @@ const createSync = async (socket, options) => {
|
|
|
80
83
|
synced_field,
|
|
81
84
|
throttle,
|
|
82
85
|
};
|
|
83
|
-
const
|
|
86
|
+
const clientSyncHandles = { onSyncRequest, onPullRequest, onUpdates };
|
|
87
|
+
let dbSync = await initializeSync(clientSyncHandles);
|
|
84
88
|
/**
|
|
85
89
|
* Some syncs can be read only. Any changes are local
|
|
86
90
|
*/
|
|
@@ -192,6 +196,12 @@ const createSync = async (socket, options) => {
|
|
|
192
196
|
}
|
|
193
197
|
};
|
|
194
198
|
const subscriptionManager = (0, createSyncSubscriptionManager_1.createSyncSubscriptionManager)({ id_fields, synced_field }, store, stateUtils, upsert);
|
|
199
|
+
const reAttach = async () => {
|
|
200
|
+
state.isSynced = false;
|
|
201
|
+
dbSync = await initializeSync(clientSyncHandles);
|
|
202
|
+
store.setItems(dbSync.syncInfo.data);
|
|
203
|
+
await dbSync.syncData();
|
|
204
|
+
};
|
|
195
205
|
store.setItems(dbSync.syncInfo.data);
|
|
196
206
|
/** TODO */
|
|
197
207
|
// if (!dbSync.syncInfo.isSynced) {
|
|
@@ -199,7 +209,7 @@ const createSync = async (socket, options) => {
|
|
|
199
209
|
// } else {
|
|
200
210
|
// state.isSynced = true;
|
|
201
211
|
// }
|
|
202
|
-
return subscriptionManager;
|
|
212
|
+
return { ...subscriptionManager, reAttach };
|
|
203
213
|
};
|
|
204
214
|
exports.createSync = createSync;
|
|
205
215
|
const isWindowDefined = typeof window !== "undefined";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createSyncStateUtils.d.ts","sourceRoot":"","sources":["../../lib/SyncedTable/createSyncStateUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,mBAAmB,EACnB,KAAK,iBAAiB,EACvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,KAAK,EAAe,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAErE,eAAO,MAAM,oBAAoB,GAAI,QAAQ,MAAM,EAAE,SAAS,kBAAkB;;;;mBAIxD,IAAI,CAAC,cAAc,EAAE,MAAM,GAAG,WAAW,GAAG,aAAa,GAAG,SAAS,CAAC;;;;;;;8BAyBrD,iBAAiB;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"createSyncStateUtils.d.ts","sourceRoot":"","sources":["../../lib/SyncedTable/createSyncStateUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,mBAAmB,EACnB,KAAK,iBAAiB,EACvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,KAAK,EAAe,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAErE,eAAO,MAAM,oBAAoB,GAAI,QAAQ,MAAM,EAAE,SAAS,kBAAkB;;;;mBAIxD,IAAI,CAAC,cAAc,EAAE,MAAM,GAAG,WAAW,GAAG,aAAa,GAAG,SAAS,CAAC;;;;;;;8BAyBrD,iBAAiB;;;;;;;;;2HAiEk2E,CAAC;;;;;;CAD55E,CAAC"}
|
|
@@ -48,64 +48,11 @@ const createSyncStateUtils = (socket, options) => {
|
|
|
48
48
|
ServerSyncRequest: handles.onSyncRequest,
|
|
49
49
|
UpdateRequest: handles.onUpdates,
|
|
50
50
|
});
|
|
51
|
-
// const onCall = function (data: any | undefined, cb: AnyFunction) {
|
|
52
|
-
// /*
|
|
53
|
-
// Client will:
|
|
54
|
-
// 1. Send last_synced on(onSyncRequest)
|
|
55
|
-
// 2. Send data >= server_synced on(onPullRequest)
|
|
56
|
-
// 3. Send data on CRUD emit(data.data)
|
|
57
|
-
// 4. Upsert data.data on(data.data)
|
|
58
|
-
// */
|
|
59
|
-
// if (!data) {
|
|
60
|
-
// return;
|
|
61
|
-
// }
|
|
62
|
-
// const { onUpdates, onSyncRequest, onPullRequest } = handles;
|
|
63
|
-
// onDebug({
|
|
64
|
-
// command:
|
|
65
|
-
// data.data ? "onUpdates"
|
|
66
|
-
// : data.onSyncRequest ? "onSyncRequest"
|
|
67
|
-
// : "onPullRequest",
|
|
68
|
-
// data,
|
|
69
|
-
// });
|
|
70
|
-
// if (data.data) {
|
|
71
|
-
// Promise.resolve(onUpdates(data))
|
|
72
|
-
// .then(() => {
|
|
73
|
-
// cb({ ok: true });
|
|
74
|
-
// })
|
|
75
|
-
// .catch((err) => {
|
|
76
|
-
// cb({ err });
|
|
77
|
-
// });
|
|
78
|
-
// } else if (data.onSyncRequest) {
|
|
79
|
-
// Promise.resolve(onSyncRequest(data.onSyncRequest))
|
|
80
|
-
// .then((res) => cb({ onSyncRequest: res }))
|
|
81
|
-
// .catch((err) => {
|
|
82
|
-
// cb({ err });
|
|
83
|
-
// });
|
|
84
|
-
// } else if (data.onPullRequest) {
|
|
85
|
-
// Promise.resolve(onPullRequest(data.onPullRequest))
|
|
86
|
-
// .then((result) => {
|
|
87
|
-
// cb(result);
|
|
88
|
-
// })
|
|
89
|
-
// .catch((err) => {
|
|
90
|
-
// cb({ err });
|
|
91
|
-
// });
|
|
92
|
-
// } else {
|
|
93
|
-
// console.log("unexpected response");
|
|
94
|
-
// }
|
|
95
|
-
// };
|
|
96
|
-
// socket.on(channelName, onCall);
|
|
97
51
|
const syncData = async (data) => {
|
|
98
52
|
const { c_count, c_fr, c_lr } = await handles.onSyncRequest({});
|
|
99
53
|
handlers.ClientSyncRequest(data && c_fr && c_lr ?
|
|
100
54
|
{ state: "syncing-data", c_count, c_fr, c_lr, data }
|
|
101
55
|
: { state: "syncing", c_count, c_fr, c_lr });
|
|
102
|
-
// socket.emit(channelName, {
|
|
103
|
-
// onSyncRequest: {
|
|
104
|
-
// ...handles.onSyncRequest({}),
|
|
105
|
-
// ...{ data },
|
|
106
|
-
// ...{ deleted },
|
|
107
|
-
// },
|
|
108
|
-
// });
|
|
109
56
|
};
|
|
110
57
|
const unsync = () => {
|
|
111
58
|
return new Promise((resolve, reject) => {
|
|
@@ -2,10 +2,11 @@ import type { AnyObject, SyncConfig } from "prostgles-types";
|
|
|
2
2
|
import { WAL } from "prostgles-types/dist/WAL";
|
|
3
3
|
import type { createSyncDataStore } from "./createSyncDataStore";
|
|
4
4
|
import type { createSyncStateUtils } from "./createSyncStateUtils";
|
|
5
|
-
import type
|
|
5
|
+
import { type ItemUpdate, type MultiChangeListener, type MultiSyncHandles, type SingleChangeListener, type SingleSyncHandles } from "./SyncedTable";
|
|
6
6
|
export declare const createSyncSubscriptionManager: ({ id_fields, synced_field }: Omit<SyncConfig, "channelName">, store: ReturnType<typeof createSyncDataStore>, stateUtils: ReturnType<typeof createSyncStateUtils>, upsert: (items: ItemUpdate[], from_server?: boolean) => Promise<void>) => {
|
|
7
7
|
sync: <T extends AnyObject = AnyObject>(onChange: MultiChangeListener<T>, handlesOnData?: boolean) => MultiSyncHandles<T>;
|
|
8
8
|
syncOne: <T extends AnyObject = AnyObject, Full extends boolean = false>(idObj: Partial<T>, onChange: SingleChangeListener<T, Full>, handlesOnData?: boolean) => SingleSyncHandles<T, Full>;
|
|
9
9
|
notifyWal: WAL;
|
|
10
|
+
notifyCurrentData: () => void;
|
|
10
11
|
};
|
|
11
12
|
//# sourceMappingURL=createSyncSubscriptionManager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createSyncSubscriptionManager.d.ts","sourceRoot":"","sources":["../../lib/SyncedTable/createSyncSubscriptionManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAiB,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAE,GAAG,EAAE,MAAM,0BAA0B,CAAC;AAC/C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"createSyncSubscriptionManager.d.ts","sourceRoot":"","sources":["../../lib/SyncedTable/createSyncSubscriptionManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAiB,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAE,GAAG,EAAE,MAAM,0BAA0B,CAAC;AAC/C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAGL,KAAK,UAAU,EAEf,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EAIvB,MAAM,eAAe,CAAC;AAEvB,eAAO,MAAM,6BAA6B,GACxC,6BAA6B,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,EAC5D,OAAO,UAAU,CAAC,OAAO,mBAAmB,CAAC,EAC7C,YAAY,UAAU,CAAC,OAAO,oBAAoB,CAAC,EACnD,QAAQ,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,WAAW,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC;WAgKvD,CAAC,SAAS,SAAS,wBACrB,mBAAmB,CAAC,CAAC,CAAC,8BAE/B,gBAAgB,CAAC,CAAC,CAAC;cAsDL,CAAC,SAAS,SAAS,cAAc,IAAI,SAAS,OAAO,iBAC7D,OAAO,CAAC,CAAC,CAAC,YACP,oBAAoB,CAAC,CAAC,EAAE,IAAI,CAAC,8BAEtC,iBAAiB,CAAC,CAAC,EAAE,IAAI,CAAC;;;CAwC9B,CAAC"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.createSyncSubscriptionManager = void 0;
|
|
4
4
|
const WAL_1 = require("prostgles-types/dist/WAL");
|
|
5
|
+
const SyncedTable_1 = require("./SyncedTable");
|
|
5
6
|
const createSyncSubscriptionManager = ({ id_fields, synced_field }, store, stateUtils, upsert) => {
|
|
6
7
|
let multiSubscriptions = [];
|
|
7
8
|
let singleSubscriptions = [];
|
|
@@ -115,7 +116,7 @@ const createSyncSubscriptionManager = ({ id_fields, synced_field }, store, state
|
|
|
115
116
|
handlesOnData,
|
|
116
117
|
handles,
|
|
117
118
|
notify: (_allItems, _allDeltas) => {
|
|
118
|
-
let allItems =
|
|
119
|
+
let allItems = (0, SyncedTable_1.quickClone)(_allItems);
|
|
119
120
|
const allDeltas = [..._allDeltas];
|
|
120
121
|
if (handlesOnData) {
|
|
121
122
|
allItems = allItems.map((item, i) => {
|
|
@@ -168,7 +169,7 @@ const createSyncSubscriptionManager = ({ id_fields, synced_field }, store, state
|
|
|
168
169
|
if (!singleSubscriptions.length && !multiSubscriptions.length) {
|
|
169
170
|
console.warn("No sync listeners");
|
|
170
171
|
}
|
|
171
|
-
return upsert([{ idObj, delta: newData, opts }]);
|
|
172
|
+
return upsert([{ idObj, delta: (0, SyncedTable_1.quickClone)(newData), opts }]);
|
|
172
173
|
},
|
|
173
174
|
$cloneSync: (onChange) => syncOne(idObj, onChange),
|
|
174
175
|
// TODO: add clone sync hook
|
|
@@ -221,6 +222,7 @@ const createSyncSubscriptionManager = ({ id_fields, synced_field }, store, state
|
|
|
221
222
|
sync,
|
|
222
223
|
syncOne,
|
|
223
224
|
notifyWal,
|
|
225
|
+
notifyCurrentData: () => _notifySubscribers(),
|
|
224
226
|
};
|
|
225
227
|
};
|
|
226
228
|
exports.createSyncSubscriptionManager = createSyncSubscriptionManager;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getSyncHandlerV2.d.ts","sourceRoot":"","sources":["../lib/getSyncHandlerV2.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,SAAS,EAGd,KAAK,mBAAmB,EACzB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEhE,OAAO,KAAK,EAAwB,IAAI,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAErF,eAAO,MAAM,gBAAgB,GAAI,qBAAqB,IAAI,CAAC,WAAW,EAAE,QAAQ,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"getSyncHandlerV2.d.ts","sourceRoot":"","sources":["../lib/getSyncHandlerV2.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,SAAS,EAGd,KAAK,mBAAmB,EACzB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEhE,OAAO,KAAK,EAAwB,IAAI,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAErF,eAAO,MAAM,gBAAgB,GAAI,qBAAqB,IAAI,CAAC,WAAW,EAAE,QAAQ,GAAG,SAAS,CAAC;yDA6CxF;QACD,EAAE,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;QAC7B,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,mBAAmB,EAAE,CAAC;KAChC;;;;;CA2BF,CAAC"}
|
package/dist/getSyncHandlerV2.js
CHANGED
|
@@ -11,7 +11,7 @@ const getSyncHandlerV2 = ({ socket, onDebug }) => {
|
|
|
11
11
|
select,
|
|
12
12
|
tableName,
|
|
13
13
|
});
|
|
14
|
-
|
|
14
|
+
const syncConfig = syncs.get(channelName) ?? {
|
|
15
15
|
options: { tableName, filter, select },
|
|
16
16
|
sync: (0, createSync_1.createSync)(socket, {
|
|
17
17
|
name: tableName,
|
|
@@ -21,8 +21,9 @@ const getSyncHandlerV2 = ({ socket, onDebug }) => {
|
|
|
21
21
|
db,
|
|
22
22
|
columns,
|
|
23
23
|
}),
|
|
24
|
-
}
|
|
25
|
-
|
|
24
|
+
};
|
|
25
|
+
syncs.set(channelName, syncConfig);
|
|
26
|
+
return syncConfig.sync;
|
|
26
27
|
};
|
|
27
28
|
const getTableSyncFunctions = async ({ db, tableName, columns, }) => {
|
|
28
29
|
const addSync = (async (filter, opts, onChange) => {
|
|
@@ -35,6 +36,16 @@ const getSyncHandlerV2 = ({ socket, onDebug }) => {
|
|
|
35
36
|
});
|
|
36
37
|
return { addSync, addSyncOne };
|
|
37
38
|
};
|
|
38
|
-
|
|
39
|
+
const reAttachAll = async () => {
|
|
40
|
+
for (const { sync } of syncs.values()) {
|
|
41
|
+
try {
|
|
42
|
+
await (await sync).reAttach();
|
|
43
|
+
}
|
|
44
|
+
catch (error) {
|
|
45
|
+
console.error("Failed to reattach sync", error);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
return { getTableSyncFunctions, reAttachAll };
|
|
39
50
|
};
|
|
40
51
|
exports.getSyncHandlerV2 = getSyncHandlerV2;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
declare const React: typeof import("react");
|
|
2
2
|
type React = typeof import("react");
|
|
3
|
-
export declare const useDeepCompareMemoize: (value:
|
|
3
|
+
export declare const useDeepCompareMemoize: <T>(value: T) => T;
|
|
4
4
|
export declare const useMemoDeep: React["useMemo"];
|
|
5
5
|
export declare const useEffectDeep: React["useEffect"];
|
|
6
6
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useEffectDeep.d.ts","sourceRoot":"","sources":["../../lib/hooks/useEffectDeep.ts"],"names":[],"mappings":"AAGA,QAAA,MAAM,KAAK,wBAAa,CAAC;AACzB,KAAK,KAAK,GAAG,cAAc,OAAO,CAAC,CAAC;AACpC,eAAO,MAAM,qBAAqB,GAAI,
|
|
1
|
+
{"version":3,"file":"useEffectDeep.d.ts","sourceRoot":"","sources":["../../lib/hooks/useEffectDeep.ts"],"names":[],"mappings":"AAGA,QAAA,MAAM,KAAK,wBAAa,CAAC;AACzB,KAAK,KAAK,GAAG,cAAc,OAAO,CAAC,CAAC;AACpC,eAAO,MAAM,qBAAqB,GAAI,CAAC,EAAE,OAAO,CAAC,KAAG,CAQnD,CAAC;AAEF,eAAO,MAAM,WAAW,EAIlB,KAAK,CAAC,SAAS,CAAC,CAAC;AAEvB,eAAO,MAAM,aAAa,EAIpB,KAAK,CAAC,WAAW,CAAC,CAAC"}
|
|
@@ -3,10 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.useEffectDeep = exports.useMemoDeep = exports.useDeepCompareMemoize = void 0;
|
|
4
4
|
const prostgles_types_1 = require("prostgles-types");
|
|
5
5
|
const reactImports_1 = require("./reactImports");
|
|
6
|
-
const { getReact,
|
|
6
|
+
const { getReact, useRef } = reactImports_1.reactImports;
|
|
7
7
|
const React = getReact();
|
|
8
8
|
const useDeepCompareMemoize = (value) => {
|
|
9
|
-
const ref = useRef();
|
|
9
|
+
const ref = useRef(value);
|
|
10
10
|
if (!(0, prostgles_types_1.isEqual)(value, ref.current)) {
|
|
11
11
|
ref.current = value;
|
|
12
12
|
}
|
|
@@ -14,10 +14,12 @@ const useDeepCompareMemoize = (value) => {
|
|
|
14
14
|
};
|
|
15
15
|
exports.useDeepCompareMemoize = useDeepCompareMemoize;
|
|
16
16
|
exports.useMemoDeep = ((callback, deps) => {
|
|
17
|
+
const memoizedDeps = (0, exports.useDeepCompareMemoize)(deps);
|
|
17
18
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
18
|
-
return React.useMemo(callback,
|
|
19
|
+
return React.useMemo(callback, memoizedDeps);
|
|
19
20
|
});
|
|
20
21
|
exports.useEffectDeep = ((callback, deps) => {
|
|
22
|
+
const memoizedDeps = (0, exports.useDeepCompareMemoize)(deps);
|
|
21
23
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
22
|
-
useEffect(callback,
|
|
24
|
+
React.useEffect(callback, memoizedDeps);
|
|
23
25
|
});
|