@lasterp/shared 1.0.0-beta.7 → 1.0.0-beta.8
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.
|
@@ -1,10 +1,104 @@
|
|
|
1
1
|
"use client";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
4
|
+
var __defProp = Object.defineProperty;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
function __accessProp(key) {
|
|
9
|
+
return this[key];
|
|
10
|
+
}
|
|
11
|
+
var __toESMCache_node;
|
|
12
|
+
var __toESMCache_esm;
|
|
13
|
+
var __toESM = (mod, isNodeMode, target) => {
|
|
14
|
+
var canCache = mod != null && typeof mod === "object";
|
|
15
|
+
if (canCache) {
|
|
16
|
+
var cache = isNodeMode ? __toESMCache_node ??= new WeakMap : __toESMCache_esm ??= new WeakMap;
|
|
17
|
+
var cached = cache.get(mod);
|
|
18
|
+
if (cached)
|
|
19
|
+
return cached;
|
|
20
|
+
}
|
|
21
|
+
target = mod != null ? __create(__getProtoOf(mod)) : {};
|
|
22
|
+
const to = isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target;
|
|
23
|
+
for (let key of __getOwnPropNames(mod))
|
|
24
|
+
if (!__hasOwnProp.call(to, key))
|
|
25
|
+
__defProp(to, key, {
|
|
26
|
+
get: __accessProp.bind(mod, key),
|
|
27
|
+
enumerable: true
|
|
28
|
+
});
|
|
29
|
+
if (canCache)
|
|
30
|
+
cache.set(mod, to);
|
|
31
|
+
return to;
|
|
32
|
+
};
|
|
33
|
+
var __toCommonJS = (from) => {
|
|
34
|
+
var entry = (__moduleCache ??= new WeakMap).get(from), desc;
|
|
35
|
+
if (entry)
|
|
36
|
+
return entry;
|
|
37
|
+
entry = __defProp({}, "__esModule", { value: true });
|
|
38
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
39
|
+
for (var key of __getOwnPropNames(from))
|
|
40
|
+
if (!__hasOwnProp.call(entry, key))
|
|
41
|
+
__defProp(entry, key, {
|
|
42
|
+
get: __accessProp.bind(from, key),
|
|
43
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
__moduleCache.set(from, entry);
|
|
47
|
+
return entry;
|
|
48
|
+
};
|
|
49
|
+
var __moduleCache;
|
|
50
|
+
var __returnValue = (v) => v;
|
|
51
|
+
function __exportSetter(name, newValue) {
|
|
52
|
+
this[name] = __returnValue.bind(null, newValue);
|
|
53
|
+
}
|
|
54
|
+
var __export = (target, all) => {
|
|
55
|
+
for (var name in all)
|
|
56
|
+
__defProp(target, name, {
|
|
57
|
+
get: all[name],
|
|
58
|
+
enumerable: true,
|
|
59
|
+
configurable: true,
|
|
60
|
+
set: __exportSetter.bind(all, name)
|
|
61
|
+
});
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
// src/index.ts
|
|
65
|
+
var exports_src = {};
|
|
66
|
+
__export(exports_src, {
|
|
67
|
+
useVariantSelector: () => useVariantSelector,
|
|
68
|
+
useSearch: () => useSearch,
|
|
69
|
+
useLocale: () => useLocale,
|
|
70
|
+
useFrappeUpdateDoc: () => useFrappeUpdateDoc,
|
|
71
|
+
useFrappePutCall: () => useFrappePutCall,
|
|
72
|
+
useFrappePrefetchDoc: () => useFrappePrefetchDoc,
|
|
73
|
+
useFrappePostCall: () => useFrappePostCall,
|
|
74
|
+
useFrappeGetDocList: () => useFrappeGetDocList,
|
|
75
|
+
useFrappeGetDocCount: () => useFrappeGetDocCount,
|
|
76
|
+
useFrappeGetDoc: () => useFrappeGetDoc,
|
|
77
|
+
useFrappeGetCall: () => useFrappeGetCall,
|
|
78
|
+
useFrappeFileUpload: () => useFrappeFileUpload,
|
|
79
|
+
useFrappeEventListener: () => useFrappeEventListener,
|
|
80
|
+
useFrappeDocumentEventListener: () => useFrappeDocumentEventListener,
|
|
81
|
+
useFrappeDocTypeEventListener: () => useFrappeDocTypeEventListener,
|
|
82
|
+
useFrappeDeleteDoc: () => useFrappeDeleteDoc,
|
|
83
|
+
useFrappeDeleteCall: () => useFrappeDeleteCall,
|
|
84
|
+
useFrappeCreateDoc: () => useFrappeCreateDoc,
|
|
85
|
+
useFrappeAuth: () => useFrappeAuth,
|
|
86
|
+
equalsIgnoreCase: () => equalsIgnoreCase,
|
|
87
|
+
decamelizeKeys: () => import_humps.decamelizeKeys,
|
|
88
|
+
decamelize: () => import_humps.decamelize,
|
|
89
|
+
camelizeKeys: () => import_humps.camelizeKeys,
|
|
90
|
+
camelize: () => import_humps.camelize,
|
|
91
|
+
LocaleProvider: () => LocaleProvider,
|
|
92
|
+
FrappeProvider: () => FrappeProvider,
|
|
93
|
+
FrappeContext: () => FrappeContext
|
|
94
|
+
});
|
|
95
|
+
module.exports = __toCommonJS(exports_src);
|
|
2
96
|
// src/frappe/provider.tsx
|
|
3
|
-
|
|
4
|
-
|
|
97
|
+
var import_react = require("react");
|
|
98
|
+
var import_frappe_js_sdk = require("frappe-js-sdk");
|
|
5
99
|
|
|
6
100
|
// src/frappe/socket.ts
|
|
7
|
-
|
|
101
|
+
var import_socket = __toESM(require("socket.io-client"));
|
|
8
102
|
|
|
9
103
|
class SocketIO {
|
|
10
104
|
socket_port;
|
|
@@ -35,7 +129,7 @@ class SocketIO {
|
|
|
35
129
|
this.url = `${this.url}${site_name}`;
|
|
36
130
|
}
|
|
37
131
|
this.site_name = site_name;
|
|
38
|
-
this.socket =
|
|
132
|
+
this.socket = import_socket.default(`${this.url}`, {
|
|
39
133
|
withCredentials: true,
|
|
40
134
|
secure: this.protocol === "https",
|
|
41
135
|
extraHeaders: tokenParams && tokenParams.useToken === true ? {
|
|
@@ -46,9 +140,9 @@ class SocketIO {
|
|
|
46
140
|
}
|
|
47
141
|
|
|
48
142
|
// src/frappe/provider.tsx
|
|
49
|
-
|
|
143
|
+
var jsx_runtime = require("react/jsx-runtime");
|
|
50
144
|
|
|
51
|
-
var FrappeContext = createContext(null);
|
|
145
|
+
var FrappeContext = import_react.createContext(null);
|
|
52
146
|
var FrappeProvider = ({
|
|
53
147
|
url = "",
|
|
54
148
|
tokenParams,
|
|
@@ -58,8 +152,8 @@ var FrappeProvider = ({
|
|
|
58
152
|
children,
|
|
59
153
|
customHeaders
|
|
60
154
|
}) => {
|
|
61
|
-
const config = useMemo(() => {
|
|
62
|
-
const frappe = new FrappeApp(url, tokenParams, undefined, customHeaders);
|
|
155
|
+
const config = import_react.useMemo(() => {
|
|
156
|
+
const frappe = new import_frappe_js_sdk.FrappeApp(url, tokenParams, undefined, customHeaders);
|
|
63
157
|
return {
|
|
64
158
|
url,
|
|
65
159
|
tokenParams,
|
|
@@ -71,19 +165,19 @@ var FrappeProvider = ({
|
|
|
71
165
|
socket: enableSocket ? new SocketIO(url, siteName, socketPort, tokenParams).socket : undefined
|
|
72
166
|
};
|
|
73
167
|
}, [url, tokenParams, enableSocket, socketPort, siteName, customHeaders]);
|
|
74
|
-
return /* @__PURE__ */ jsx(FrappeContext.Provider, {
|
|
168
|
+
return /* @__PURE__ */ jsx_runtime.jsx(FrappeContext.Provider, {
|
|
75
169
|
value: config,
|
|
76
170
|
children
|
|
77
171
|
});
|
|
78
172
|
};
|
|
79
173
|
// src/frappe/hooks/auth.ts
|
|
80
|
-
|
|
81
|
-
|
|
174
|
+
var import_react2 = require("react");
|
|
175
|
+
var import_react_query = require("@tanstack/react-query");
|
|
82
176
|
var useFrappeAuth = () => {
|
|
83
|
-
const queryClient = useQueryClient();
|
|
84
|
-
const { auth, tokenParams } = useContext(FrappeContext);
|
|
85
|
-
const [userID, setUserID] = useState();
|
|
86
|
-
const getUserCookie = useCallback(() => {
|
|
177
|
+
const queryClient = import_react_query.useQueryClient();
|
|
178
|
+
const { auth, tokenParams } = import_react2.useContext(FrappeContext);
|
|
179
|
+
const [userID, setUserID] = import_react2.useState();
|
|
180
|
+
const getUserCookie = import_react2.useCallback(() => {
|
|
87
181
|
const userCookie = document.cookie.split(";").find((c) => c.trim().startsWith("user_id="));
|
|
88
182
|
if (userCookie) {
|
|
89
183
|
const userName = userCookie.split("=")[1];
|
|
@@ -96,7 +190,7 @@ var useFrappeAuth = () => {
|
|
|
96
190
|
setUserID(null);
|
|
97
191
|
}
|
|
98
192
|
}, []);
|
|
99
|
-
useEffect(() => {
|
|
193
|
+
import_react2.useEffect(() => {
|
|
100
194
|
if (tokenParams && tokenParams.useToken) {
|
|
101
195
|
setUserID(null);
|
|
102
196
|
} else {
|
|
@@ -108,7 +202,7 @@ var useFrappeAuth = () => {
|
|
|
108
202
|
error,
|
|
109
203
|
isLoading,
|
|
110
204
|
isFetching: isValidating
|
|
111
|
-
} = useQuery({
|
|
205
|
+
} = import_react_query.useQuery({
|
|
112
206
|
queryKey: ["currentUser", { tokenParams, userID }],
|
|
113
207
|
queryFn: () => auth.getLoggedInUser(),
|
|
114
208
|
enabled: !!(tokenParams?.useToken || userID),
|
|
@@ -116,14 +210,14 @@ var useFrappeAuth = () => {
|
|
|
116
210
|
refetchOnWindowFocus: false,
|
|
117
211
|
staleTime: Infinity
|
|
118
212
|
});
|
|
119
|
-
const loginMutation = useMutation({
|
|
213
|
+
const loginMutation = import_react_query.useMutation({
|
|
120
214
|
mutationFn: (credentials) => auth.loginWithUsernamePassword(credentials),
|
|
121
215
|
onSuccess: () => {
|
|
122
216
|
getUserCookie();
|
|
123
217
|
queryClient.invalidateQueries({ queryKey: ["currentUser"] });
|
|
124
218
|
}
|
|
125
219
|
});
|
|
126
|
-
const logoutMutation = useMutation({
|
|
220
|
+
const logoutMutation = import_react_query.useMutation({
|
|
127
221
|
mutationFn: () => auth.logout(),
|
|
128
222
|
onSuccess: () => {
|
|
129
223
|
setUserID(null);
|
|
@@ -142,8 +236,8 @@ var useFrappeAuth = () => {
|
|
|
142
236
|
};
|
|
143
237
|
};
|
|
144
238
|
// src/frappe/hooks/call.ts
|
|
145
|
-
|
|
146
|
-
|
|
239
|
+
var import_react3 = require("react");
|
|
240
|
+
var import_react_query2 = require("@tanstack/react-query");
|
|
147
241
|
|
|
148
242
|
// src/frappe/utils.ts
|
|
149
243
|
function encodeQueryData(data) {
|
|
@@ -155,11 +249,11 @@ function encodeQueryData(data) {
|
|
|
155
249
|
|
|
156
250
|
// src/frappe/hooks/call.ts
|
|
157
251
|
var useFrappeGetCall = (method, params, options, type = "GET") => {
|
|
158
|
-
const { call } =
|
|
252
|
+
const { call } = import_react3.useContext(FrappeContext);
|
|
159
253
|
const urlParams = encodeQueryData(params ?? {});
|
|
160
254
|
const url = `${method}?${urlParams}`;
|
|
161
255
|
const queryKey = ["frappeCall", type, method, url];
|
|
162
|
-
const { data, error, isLoading, isFetching, refetch } =
|
|
256
|
+
const { data, error, isLoading, isFetching, refetch } = import_react_query2.useQuery({
|
|
163
257
|
queryKey,
|
|
164
258
|
queryFn: type === "GET" ? () => call.get(method, params) : () => call.post(method, params),
|
|
165
259
|
enabled: (options?.enabled ?? true) && !!method,
|
|
@@ -175,9 +269,9 @@ var useFrappeGetCall = (method, params, options, type = "GET") => {
|
|
|
175
269
|
};
|
|
176
270
|
};
|
|
177
271
|
var useFrappeMutation = (method, httpMethod) => {
|
|
178
|
-
const { call: frappeCall } =
|
|
272
|
+
const { call: frappeCall } = import_react3.useContext(FrappeContext);
|
|
179
273
|
const queryKey = ["frappeCall", httpMethod, method];
|
|
180
|
-
const { mutateAsync, data, isPending, error, isSuccess, reset } =
|
|
274
|
+
const { mutateAsync, data, isPending, error, isSuccess, reset } = import_react_query2.useMutation({
|
|
181
275
|
mutationKey: queryKey,
|
|
182
276
|
mutationFn: (params) => {
|
|
183
277
|
if (httpMethod === "POST")
|
|
@@ -200,12 +294,12 @@ var useFrappePostCall = (method) => useFrappeMutation(method, "POST");
|
|
|
200
294
|
var useFrappePutCall = (method) => useFrappeMutation(method, "PUT");
|
|
201
295
|
var useFrappeDeleteCall = (method) => useFrappeMutation(method, "DELETE");
|
|
202
296
|
// src/frappe/hooks/count.ts
|
|
203
|
-
|
|
204
|
-
|
|
297
|
+
var import_react4 = require("react");
|
|
298
|
+
var import_react_query3 = require("@tanstack/react-query");
|
|
205
299
|
var useFrappeGetDocCount = (doctype, filters, debug = false, options) => {
|
|
206
|
-
const { url, db } =
|
|
300
|
+
const { url, db } = import_react4.useContext(FrappeContext);
|
|
207
301
|
const queryKey = ["docCount", url, doctype, filters ?? [], debug];
|
|
208
|
-
const { data, error, isLoading, isFetching, refetch } =
|
|
302
|
+
const { data, error, isLoading, isFetching, refetch } = import_react_query3.useQuery({
|
|
209
303
|
queryKey,
|
|
210
304
|
queryFn: () => db.getCount(doctype, filters, debug),
|
|
211
305
|
enabled: !!doctype,
|
|
@@ -220,11 +314,11 @@ var useFrappeGetDocCount = (doctype, filters, debug = false, options) => {
|
|
|
220
314
|
};
|
|
221
315
|
};
|
|
222
316
|
// src/frappe/hooks/create.ts
|
|
223
|
-
|
|
224
|
-
|
|
317
|
+
var import_react5 = require("react");
|
|
318
|
+
var import_react_query4 = require("@tanstack/react-query");
|
|
225
319
|
var useFrappeCreateDoc = () => {
|
|
226
|
-
const { db } =
|
|
227
|
-
const { mutateAsync, isPending, error, isSuccess, reset } =
|
|
320
|
+
const { db } = import_react5.useContext(FrappeContext);
|
|
321
|
+
const { mutateAsync, isPending, error, isSuccess, reset } = import_react_query4.useMutation({
|
|
228
322
|
mutationFn: ({ doctype, doc }) => db.createDoc(doctype, doc)
|
|
229
323
|
});
|
|
230
324
|
const createDoc = (doctype, doc) => mutateAsync({ doctype, doc });
|
|
@@ -237,11 +331,11 @@ var useFrappeCreateDoc = () => {
|
|
|
237
331
|
};
|
|
238
332
|
};
|
|
239
333
|
// src/frappe/hooks/delete.ts
|
|
240
|
-
|
|
241
|
-
|
|
334
|
+
var import_react6 = require("react");
|
|
335
|
+
var import_react_query5 = require("@tanstack/react-query");
|
|
242
336
|
var useFrappeDeleteDoc = () => {
|
|
243
|
-
const { db } =
|
|
244
|
-
const { mutateAsync, isPending, error, isSuccess, reset } =
|
|
337
|
+
const { db } = import_react6.useContext(FrappeContext);
|
|
338
|
+
const { mutateAsync, isPending, error, isSuccess, reset } = import_react_query5.useMutation({
|
|
245
339
|
mutationFn: ({ doctype, docname }) => db.deleteDoc(doctype, docname)
|
|
246
340
|
});
|
|
247
341
|
const deleteDoc = (doctype, docname) => mutateAsync({ doctype, docname });
|
|
@@ -254,10 +348,10 @@ var useFrappeDeleteDoc = () => {
|
|
|
254
348
|
};
|
|
255
349
|
};
|
|
256
350
|
// src/frappe/hooks/event.ts
|
|
257
|
-
|
|
351
|
+
var import_react7 = require("react");
|
|
258
352
|
var useFrappeEventListener = (eventName, callback) => {
|
|
259
|
-
const { socket } =
|
|
260
|
-
|
|
353
|
+
const { socket } = import_react7.useContext(FrappeContext);
|
|
354
|
+
import_react7.useEffect(() => {
|
|
261
355
|
if (socket === undefined) {
|
|
262
356
|
console.warn("Socket is not enabled. Please enable socket in FrappeProvider.");
|
|
263
357
|
}
|
|
@@ -268,9 +362,9 @@ var useFrappeEventListener = (eventName, callback) => {
|
|
|
268
362
|
}, [eventName, callback, socket]);
|
|
269
363
|
};
|
|
270
364
|
var useFrappeDocumentEventListener = (doctype, docname, onUpdateCallback, emitOpenCloseEventsOnMount = true) => {
|
|
271
|
-
const { socket } =
|
|
272
|
-
const [viewers, setViewers] =
|
|
273
|
-
|
|
365
|
+
const { socket } = import_react7.useContext(FrappeContext);
|
|
366
|
+
const [viewers, setViewers] = import_react7.useState([]);
|
|
367
|
+
import_react7.useEffect(() => {
|
|
274
368
|
if (socket === undefined) {
|
|
275
369
|
console.warn("Socket is not enabled. Please enable socket in FrappeProvider.");
|
|
276
370
|
}
|
|
@@ -291,13 +385,13 @@ var useFrappeDocumentEventListener = (doctype, docname, onUpdateCallback, emitOp
|
|
|
291
385
|
};
|
|
292
386
|
}, [doctype, docname, emitOpenCloseEventsOnMount, socket]);
|
|
293
387
|
useFrappeEventListener("doc_update", onUpdateCallback);
|
|
294
|
-
const emitDocOpen =
|
|
388
|
+
const emitDocOpen = import_react7.useCallback(() => {
|
|
295
389
|
socket?.emit("doc_open", doctype, docname);
|
|
296
390
|
}, [doctype, docname, socket]);
|
|
297
|
-
const emitDocClose =
|
|
391
|
+
const emitDocClose = import_react7.useCallback(() => {
|
|
298
392
|
socket?.emit("doc_close", doctype, docname);
|
|
299
393
|
}, [doctype, docname, socket]);
|
|
300
|
-
const onViewerEvent =
|
|
394
|
+
const onViewerEvent = import_react7.useCallback((data) => {
|
|
301
395
|
if (data.doctype === doctype && data.docname === docname) {
|
|
302
396
|
setViewers(data.users);
|
|
303
397
|
}
|
|
@@ -310,8 +404,8 @@ var useFrappeDocumentEventListener = (doctype, docname, onUpdateCallback, emitOp
|
|
|
310
404
|
};
|
|
311
405
|
};
|
|
312
406
|
var useFrappeDocTypeEventListener = (doctype, onListUpdateCallback) => {
|
|
313
|
-
const { socket } =
|
|
314
|
-
|
|
407
|
+
const { socket } = import_react7.useContext(FrappeContext);
|
|
408
|
+
import_react7.useEffect(() => {
|
|
315
409
|
if (socket === undefined) {
|
|
316
410
|
console.warn("Socket is not enabled. Please enable socket in FrappeProvider.");
|
|
317
411
|
}
|
|
@@ -328,18 +422,18 @@ var useFrappeDocTypeEventListener = (doctype, onListUpdateCallback) => {
|
|
|
328
422
|
useFrappeEventListener("list_update", onListUpdateCallback);
|
|
329
423
|
};
|
|
330
424
|
// src/frappe/hooks/file.ts
|
|
331
|
-
|
|
332
|
-
|
|
425
|
+
var import_react8 = require("react");
|
|
426
|
+
var import_react_query6 = require("@tanstack/react-query");
|
|
333
427
|
var useFrappeFileUpload = () => {
|
|
334
|
-
const { file } =
|
|
335
|
-
const [progress, setProgress] =
|
|
428
|
+
const { file } = import_react8.useContext(FrappeContext);
|
|
429
|
+
const [progress, setProgress] = import_react8.useState(0);
|
|
336
430
|
const {
|
|
337
431
|
mutateAsync,
|
|
338
432
|
isPending,
|
|
339
433
|
error,
|
|
340
434
|
isSuccess,
|
|
341
435
|
reset: resetMutation
|
|
342
|
-
} =
|
|
436
|
+
} = import_react_query6.useMutation({
|
|
343
437
|
mutationFn: ({ f, args, apiPath }) => {
|
|
344
438
|
setProgress(0);
|
|
345
439
|
return file.uploadFile(f, args, (completed, total) => {
|
|
@@ -366,12 +460,12 @@ var useFrappeFileUpload = () => {
|
|
|
366
460
|
};
|
|
367
461
|
};
|
|
368
462
|
// src/frappe/hooks/get.ts
|
|
369
|
-
|
|
370
|
-
|
|
463
|
+
var import_react9 = require("react");
|
|
464
|
+
var import_react_query7 = require("@tanstack/react-query");
|
|
371
465
|
var useFrappeGetDoc = (doctype, name, options) => {
|
|
372
|
-
const { url, db } =
|
|
466
|
+
const { url, db } = import_react9.useContext(FrappeContext);
|
|
373
467
|
const queryKey = ["doc", url, doctype, name];
|
|
374
|
-
const { data, error, isLoading, isFetching, refetch } =
|
|
468
|
+
const { data, error, isLoading, isFetching, refetch } = import_react_query7.useQuery({
|
|
375
469
|
queryKey,
|
|
376
470
|
queryFn: () => db.getDoc(doctype, name),
|
|
377
471
|
enabled: !!name,
|
|
@@ -387,14 +481,12 @@ var useFrappeGetDoc = (doctype, name, options) => {
|
|
|
387
481
|
};
|
|
388
482
|
};
|
|
389
483
|
// src/frappe/hooks/list.ts
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
useQuery as useQuery5
|
|
393
|
-
} from "@tanstack/react-query";
|
|
484
|
+
var import_react10 = require("react");
|
|
485
|
+
var import_react_query8 = require("@tanstack/react-query");
|
|
394
486
|
var useFrappeGetDocList = (doctype, args, options) => {
|
|
395
|
-
const { url, db } =
|
|
487
|
+
const { url, db } = import_react10.useContext(FrappeContext);
|
|
396
488
|
const queryKey = ["docList", url, doctype, args ?? null];
|
|
397
|
-
const { data, error, isLoading, isFetching, refetch } =
|
|
489
|
+
const { data, error, isLoading, isFetching, refetch } = import_react_query8.useQuery({
|
|
398
490
|
queryKey,
|
|
399
491
|
queryFn: () => db.getDocList(doctype, args),
|
|
400
492
|
...options
|
|
@@ -408,12 +500,12 @@ var useFrappeGetDocList = (doctype, args, options) => {
|
|
|
408
500
|
};
|
|
409
501
|
};
|
|
410
502
|
// src/frappe/hooks/prefetch.ts
|
|
411
|
-
|
|
412
|
-
|
|
503
|
+
var import_react11 = require("react");
|
|
504
|
+
var import_react_query9 = require("@tanstack/react-query");
|
|
413
505
|
var useFrappePrefetchDoc = (doctype, name, options) => {
|
|
414
|
-
const queryClient =
|
|
415
|
-
const { url, db } =
|
|
416
|
-
const preloadDoc =
|
|
506
|
+
const queryClient = import_react_query9.useQueryClient();
|
|
507
|
+
const { url, db } = import_react11.useContext(FrappeContext);
|
|
508
|
+
const preloadDoc = import_react11.useCallback(() => {
|
|
417
509
|
if (!name)
|
|
418
510
|
return;
|
|
419
511
|
const queryKey = ["doc", url, doctype, name];
|
|
@@ -426,7 +518,7 @@ var useFrappePrefetchDoc = (doctype, name, options) => {
|
|
|
426
518
|
return preloadDoc;
|
|
427
519
|
};
|
|
428
520
|
// src/frappe/hooks/search.ts
|
|
429
|
-
|
|
521
|
+
var import_react12 = require("react");
|
|
430
522
|
var useSearch = (doctype, text, filters = [], limit = 20, debounce = 250) => {
|
|
431
523
|
const debouncedText = useDebounce(text, debounce);
|
|
432
524
|
return useFrappeGetCall("frappe.desk.search.search_link", {
|
|
@@ -437,8 +529,8 @@ var useSearch = (doctype, text, filters = [], limit = 20, debounce = 250) => {
|
|
|
437
529
|
});
|
|
438
530
|
};
|
|
439
531
|
var useDebounce = (value, delay) => {
|
|
440
|
-
const [debouncedValue, setDebouncedValue] =
|
|
441
|
-
|
|
532
|
+
const [debouncedValue, setDebouncedValue] = import_react12.useState(value);
|
|
533
|
+
import_react12.useEffect(() => {
|
|
442
534
|
const handler = setTimeout(() => {
|
|
443
535
|
setDebouncedValue(value);
|
|
444
536
|
}, delay);
|
|
@@ -449,11 +541,11 @@ var useDebounce = (value, delay) => {
|
|
|
449
541
|
return debouncedValue;
|
|
450
542
|
};
|
|
451
543
|
// src/frappe/hooks/update.ts
|
|
452
|
-
|
|
453
|
-
|
|
544
|
+
var import_react13 = require("react");
|
|
545
|
+
var import_react_query10 = require("@tanstack/react-query");
|
|
454
546
|
var useFrappeUpdateDoc = () => {
|
|
455
|
-
const { db } =
|
|
456
|
-
const { mutateAsync, isPending, error, isSuccess, reset } =
|
|
547
|
+
const { db } = import_react13.useContext(FrappeContext);
|
|
548
|
+
const { mutateAsync, isPending, error, isSuccess, reset } = import_react_query10.useMutation({
|
|
457
549
|
mutationFn: ({ doctype, docname, doc }) => db.updateDoc(doctype, docname, doc)
|
|
458
550
|
});
|
|
459
551
|
const updateDoc = (doctype, docname, doc) => mutateAsync({ doctype, docname, doc });
|
|
@@ -466,7 +558,7 @@ var useFrappeUpdateDoc = () => {
|
|
|
466
558
|
};
|
|
467
559
|
};
|
|
468
560
|
// src/hooks/use-variant-selector/hook.ts
|
|
469
|
-
|
|
561
|
+
var import_react14 = require("react");
|
|
470
562
|
|
|
471
563
|
// src/hooks/use-variant-selector/utils.ts
|
|
472
564
|
function findVariant(variants, specs, caseInsensitive) {
|
|
@@ -499,21 +591,21 @@ function findVariants(variants, specs, caseInsensitive) {
|
|
|
499
591
|
// src/hooks/use-variant-selector/hook.ts
|
|
500
592
|
var useVariantSelector = (props) => {
|
|
501
593
|
const { variants, attributes, defaultId } = props;
|
|
502
|
-
const [selectedSpecs, setSelectedSpecs] =
|
|
594
|
+
const [selectedSpecs, setSelectedSpecs] = import_react14.useState(() => {
|
|
503
595
|
if (defaultId) {
|
|
504
596
|
const variant = variants.find((v) => v.id === defaultId);
|
|
505
597
|
return variant?.specs || {};
|
|
506
598
|
}
|
|
507
599
|
return {};
|
|
508
600
|
});
|
|
509
|
-
const variantId =
|
|
601
|
+
const variantId = import_react14.useMemo(() => {
|
|
510
602
|
const complete = attributes.every((attr) => selectedSpecs[attr.key]);
|
|
511
603
|
if (!complete)
|
|
512
604
|
return;
|
|
513
605
|
const variant = findVariant(variants, selectedSpecs);
|
|
514
606
|
return variant?.id;
|
|
515
607
|
}, [variants, selectedSpecs, attributes]);
|
|
516
|
-
const options =
|
|
608
|
+
const options = import_react14.useMemo(() => {
|
|
517
609
|
const result = {};
|
|
518
610
|
attributes.forEach((attr, attrIndex) => {
|
|
519
611
|
const constraints = {};
|
|
@@ -536,7 +628,7 @@ var useVariantSelector = (props) => {
|
|
|
536
628
|
});
|
|
537
629
|
return result;
|
|
538
630
|
}, [variants, attributes, selectedSpecs]);
|
|
539
|
-
const onOptionSelect =
|
|
631
|
+
const onOptionSelect = import_react14.useCallback((key, value) => {
|
|
540
632
|
setSelectedSpecs((prev) => {
|
|
541
633
|
const newSpecs = { ...prev, [key]: value };
|
|
542
634
|
const attrIndex = attributes.findIndex((a) => a.key === key);
|
|
@@ -571,14 +663,8 @@ var useVariantSelector = (props) => {
|
|
|
571
663
|
};
|
|
572
664
|
};
|
|
573
665
|
// src/locale/provider.tsx
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
useCallback as useCallback5,
|
|
577
|
-
useContext as useContext12,
|
|
578
|
-
useEffect as useEffect4,
|
|
579
|
-
useState as useState6
|
|
580
|
-
} from "react";
|
|
581
|
-
import { jsx as jsx2 } from "react/jsx-runtime";
|
|
666
|
+
var import_react15 = require("react");
|
|
667
|
+
var jsx_runtime2 = require("react/jsx-runtime");
|
|
582
668
|
function translate(message, replace, messages = {}) {
|
|
583
669
|
let translated = messages[message] ?? message;
|
|
584
670
|
replace?.forEach((val, i) => {
|
|
@@ -586,15 +672,15 @@ function translate(message, replace, messages = {}) {
|
|
|
586
672
|
});
|
|
587
673
|
return translated;
|
|
588
674
|
}
|
|
589
|
-
var LocaleContext =
|
|
675
|
+
var LocaleContext = import_react15.createContext((message) => message);
|
|
590
676
|
function LocaleProvider({
|
|
591
677
|
method,
|
|
592
678
|
language,
|
|
593
679
|
storage,
|
|
594
680
|
children
|
|
595
681
|
}) {
|
|
596
|
-
const [messages, setMessages] =
|
|
597
|
-
|
|
682
|
+
const [messages, setMessages] = import_react15.useState({});
|
|
683
|
+
import_react15.useEffect(() => {
|
|
598
684
|
if (!storage)
|
|
599
685
|
return;
|
|
600
686
|
const key = `locale:${language}`;
|
|
@@ -604,55 +690,26 @@ function LocaleProvider({
|
|
|
604
690
|
}).catch(() => {});
|
|
605
691
|
}, [language, storage]);
|
|
606
692
|
const { data, isLoading } = useFrappeGetCall(method, { language }, { staleTime: Infinity });
|
|
607
|
-
|
|
693
|
+
import_react15.useEffect(() => {
|
|
608
694
|
if (!data?.message)
|
|
609
695
|
return;
|
|
610
696
|
setMessages(data.message);
|
|
611
697
|
storage?.setItem(`locale:${language}`, JSON.stringify(data.message));
|
|
612
698
|
}, [data, language, storage]);
|
|
613
|
-
const __ =
|
|
699
|
+
const __ = import_react15.useCallback((message, replace) => translate(message, replace, messages), [messages]);
|
|
614
700
|
if (isLoading && Object.keys(messages).length === 0)
|
|
615
701
|
return null;
|
|
616
|
-
return /* @__PURE__ */
|
|
702
|
+
return /* @__PURE__ */ jsx_runtime2.jsx(LocaleContext.Provider, {
|
|
617
703
|
value: __,
|
|
618
704
|
children
|
|
619
705
|
});
|
|
620
706
|
}
|
|
621
707
|
function useLocale() {
|
|
622
|
-
const __ =
|
|
708
|
+
const __ = import_react15.useContext(LocaleContext);
|
|
623
709
|
return { __ };
|
|
624
710
|
}
|
|
625
711
|
// src/utils/char.ts
|
|
626
|
-
|
|
712
|
+
var import_humps = require("humps");
|
|
627
713
|
function equalsIgnoreCase(str1, str2) {
|
|
628
714
|
return str1.localeCompare(str2, undefined, { sensitivity: "accent" }) === 0;
|
|
629
715
|
}
|
|
630
|
-
export {
|
|
631
|
-
useVariantSelector,
|
|
632
|
-
useSearch,
|
|
633
|
-
useLocale,
|
|
634
|
-
useFrappeUpdateDoc,
|
|
635
|
-
useFrappePutCall,
|
|
636
|
-
useFrappePrefetchDoc,
|
|
637
|
-
useFrappePostCall,
|
|
638
|
-
useFrappeGetDocList,
|
|
639
|
-
useFrappeGetDocCount,
|
|
640
|
-
useFrappeGetDoc,
|
|
641
|
-
useFrappeGetCall,
|
|
642
|
-
useFrappeFileUpload,
|
|
643
|
-
useFrappeEventListener,
|
|
644
|
-
useFrappeDocumentEventListener,
|
|
645
|
-
useFrappeDocTypeEventListener,
|
|
646
|
-
useFrappeDeleteDoc,
|
|
647
|
-
useFrappeDeleteCall,
|
|
648
|
-
useFrappeCreateDoc,
|
|
649
|
-
useFrappeAuth,
|
|
650
|
-
equalsIgnoreCase,
|
|
651
|
-
decamelizeKeys,
|
|
652
|
-
decamelize,
|
|
653
|
-
camelizeKeys,
|
|
654
|
-
camelize,
|
|
655
|
-
LocaleProvider,
|
|
656
|
-
FrappeProvider,
|
|
657
|
-
FrappeContext
|
|
658
|
-
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lasterp/shared",
|
|
3
|
-
"version": "1.0.0-beta.
|
|
3
|
+
"version": "1.0.0-beta.8",
|
|
4
4
|
"description": "Shared repo for webapp and native app",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"files": [
|
|
@@ -33,13 +33,14 @@
|
|
|
33
33
|
"type": "module",
|
|
34
34
|
"exports": {
|
|
35
35
|
".": {
|
|
36
|
-
"
|
|
37
|
-
"
|
|
38
|
-
"
|
|
36
|
+
"types": "./dist/index.d.ts",
|
|
37
|
+
"import": "./dist/index.js",
|
|
38
|
+
"require": "./dist/index.cjs"
|
|
39
39
|
},
|
|
40
40
|
"./package.json": "./package.json"
|
|
41
41
|
},
|
|
42
42
|
"module": "./dist/index.js",
|
|
43
|
+
"main": "./dist/index.cjs",
|
|
43
44
|
"types": "./dist/index.d.ts",
|
|
44
45
|
"dependencies": {
|
|
45
46
|
"frappe-js-sdk": "^1.12.0",
|
|
File without changes
|
|
File without changes
|
|
File without changes
|