@bigbinary/neeto-github-frontend 1.1.0-beta3 → 2.0.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/index.cjs.js +25 -894
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.js +9 -865
- package/dist/index.js.map +1 -1
- package/package.json +12 -11
package/dist/index.cjs.js
CHANGED
|
@@ -2,918 +2,49 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var react = require('react');
|
|
6
6
|
var classnames = require('classnames');
|
|
7
7
|
var initializers = require('@bigbinary/neeto-commons-frontend/initializers');
|
|
8
8
|
var PageLoader = require('@bigbinary/neeto-molecules/PageLoader');
|
|
9
9
|
var reactI18next = require('react-i18next');
|
|
10
|
-
var
|
|
10
|
+
var reactQuery = require('@tanstack/react-query');
|
|
11
11
|
var ramda = require('ramda');
|
|
12
12
|
var axios = require('axios');
|
|
13
13
|
var constants = require('@bigbinary/neeto-commons-frontend/constants');
|
|
14
14
|
var reactUtils = require('@bigbinary/neeto-commons-frontend/react-utils');
|
|
15
|
-
var
|
|
15
|
+
var Github = require('@bigbinary/neeto-icons/misc/Github');
|
|
16
16
|
var Typography = require('@bigbinary/neetoui/Typography');
|
|
17
|
-
var
|
|
17
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
18
|
+
var Building = require('@bigbinary/neeto-icons/Building');
|
|
18
19
|
var Avatar = require('@bigbinary/neetoui/Avatar');
|
|
19
20
|
var Button = require('@bigbinary/neetoui/Button');
|
|
21
|
+
var Plus = require('@bigbinary/neeto-icons/Plus');
|
|
22
|
+
var Settings = require('@bigbinary/neeto-icons/Settings');
|
|
20
23
|
var neetoCist = require('@bigbinary/neeto-cist');
|
|
21
24
|
var Search = require('@bigbinary/neeto-molecules/Search');
|
|
25
|
+
var Lock = require('@bigbinary/neeto-icons/Lock');
|
|
22
26
|
var DateFormat = require('@bigbinary/neeto-molecules/DateFormat');
|
|
23
27
|
var Pane = require('@bigbinary/neetoui/Pane');
|
|
24
28
|
var require$$0 = require('util');
|
|
25
29
|
|
|
26
30
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
27
31
|
|
|
28
|
-
function _interopNamespace(e) {
|
|
29
|
-
if (e && e.__esModule) return e;
|
|
30
|
-
var n = Object.create(null);
|
|
31
|
-
if (e) {
|
|
32
|
-
Object.keys(e).forEach(function (k) {
|
|
33
|
-
if (k !== 'default') {
|
|
34
|
-
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
35
|
-
Object.defineProperty(n, k, d.get ? d : {
|
|
36
|
-
enumerable: true,
|
|
37
|
-
get: function () { return e[k]; }
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
n["default"] = e;
|
|
43
|
-
return Object.freeze(n);
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
var React__namespace = /*#__PURE__*/_interopNamespace(React);
|
|
47
32
|
var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
|
|
48
33
|
var PageLoader__default = /*#__PURE__*/_interopDefaultLegacy(PageLoader);
|
|
49
34
|
var axios__default = /*#__PURE__*/_interopDefaultLegacy(axios);
|
|
35
|
+
var Github__default = /*#__PURE__*/_interopDefaultLegacy(Github);
|
|
50
36
|
var Typography__default = /*#__PURE__*/_interopDefaultLegacy(Typography);
|
|
37
|
+
var Building__default = /*#__PURE__*/_interopDefaultLegacy(Building);
|
|
51
38
|
var Avatar__default = /*#__PURE__*/_interopDefaultLegacy(Avatar);
|
|
52
39
|
var Button__default = /*#__PURE__*/_interopDefaultLegacy(Button);
|
|
40
|
+
var Plus__default = /*#__PURE__*/_interopDefaultLegacy(Plus);
|
|
41
|
+
var Settings__default = /*#__PURE__*/_interopDefaultLegacy(Settings);
|
|
53
42
|
var Search__default = /*#__PURE__*/_interopDefaultLegacy(Search);
|
|
43
|
+
var Lock__default = /*#__PURE__*/_interopDefaultLegacy(Lock);
|
|
54
44
|
var DateFormat__default = /*#__PURE__*/_interopDefaultLegacy(DateFormat);
|
|
55
45
|
var Pane__default = /*#__PURE__*/_interopDefaultLegacy(Pane);
|
|
56
46
|
var require$$0__default = /*#__PURE__*/_interopDefaultLegacy(require$$0);
|
|
57
47
|
|
|
58
|
-
// src/subscribable.ts
|
|
59
|
-
var Subscribable = class {
|
|
60
|
-
constructor() {
|
|
61
|
-
this.listeners = /* @__PURE__ */ new Set();
|
|
62
|
-
this.subscribe = this.subscribe.bind(this);
|
|
63
|
-
}
|
|
64
|
-
subscribe(listener) {
|
|
65
|
-
this.listeners.add(listener);
|
|
66
|
-
this.onSubscribe();
|
|
67
|
-
return () => {
|
|
68
|
-
this.listeners.delete(listener);
|
|
69
|
-
this.onUnsubscribe();
|
|
70
|
-
};
|
|
71
|
-
}
|
|
72
|
-
hasListeners() {
|
|
73
|
-
return this.listeners.size > 0;
|
|
74
|
-
}
|
|
75
|
-
onSubscribe() {
|
|
76
|
-
}
|
|
77
|
-
onUnsubscribe() {
|
|
78
|
-
}
|
|
79
|
-
};
|
|
80
|
-
|
|
81
|
-
// src/utils.ts
|
|
82
|
-
var isServer = typeof window === "undefined" || "Deno" in globalThis;
|
|
83
|
-
function noop() {
|
|
84
|
-
return void 0;
|
|
85
|
-
}
|
|
86
|
-
function isValidTimeout(value) {
|
|
87
|
-
return typeof value === "number" && value >= 0 && value !== Infinity;
|
|
88
|
-
}
|
|
89
|
-
function timeUntilStale(updatedAt, staleTime) {
|
|
90
|
-
return Math.max(updatedAt + (staleTime || 0) - Date.now(), 0);
|
|
91
|
-
}
|
|
92
|
-
function replaceEqualDeep(a, b) {
|
|
93
|
-
if (a === b) {
|
|
94
|
-
return a;
|
|
95
|
-
}
|
|
96
|
-
const array = isPlainArray(a) && isPlainArray(b);
|
|
97
|
-
if (array || isPlainObject(a) && isPlainObject(b)) {
|
|
98
|
-
const aItems = array ? a : Object.keys(a);
|
|
99
|
-
const aSize = aItems.length;
|
|
100
|
-
const bItems = array ? b : Object.keys(b);
|
|
101
|
-
const bSize = bItems.length;
|
|
102
|
-
const copy = array ? [] : {};
|
|
103
|
-
let equalItems = 0;
|
|
104
|
-
for (let i = 0; i < bSize; i++) {
|
|
105
|
-
const key = array ? i : bItems[i];
|
|
106
|
-
if ((!array && aItems.includes(key) || array) && a[key] === void 0 && b[key] === void 0) {
|
|
107
|
-
copy[key] = void 0;
|
|
108
|
-
equalItems++;
|
|
109
|
-
} else {
|
|
110
|
-
copy[key] = replaceEqualDeep(a[key], b[key]);
|
|
111
|
-
if (copy[key] === a[key] && a[key] !== void 0) {
|
|
112
|
-
equalItems++;
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
return aSize === bSize && equalItems === aSize ? a : copy;
|
|
117
|
-
}
|
|
118
|
-
return b;
|
|
119
|
-
}
|
|
120
|
-
function shallowEqualObjects(a, b) {
|
|
121
|
-
if (!b || Object.keys(a).length !== Object.keys(b).length) {
|
|
122
|
-
return false;
|
|
123
|
-
}
|
|
124
|
-
for (const key in a) {
|
|
125
|
-
if (a[key] !== b[key]) {
|
|
126
|
-
return false;
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
return true;
|
|
130
|
-
}
|
|
131
|
-
function isPlainArray(value) {
|
|
132
|
-
return Array.isArray(value) && value.length === Object.keys(value).length;
|
|
133
|
-
}
|
|
134
|
-
function isPlainObject(o) {
|
|
135
|
-
if (!hasObjectPrototype(o)) {
|
|
136
|
-
return false;
|
|
137
|
-
}
|
|
138
|
-
const ctor = o.constructor;
|
|
139
|
-
if (ctor === void 0) {
|
|
140
|
-
return true;
|
|
141
|
-
}
|
|
142
|
-
const prot = ctor.prototype;
|
|
143
|
-
if (!hasObjectPrototype(prot)) {
|
|
144
|
-
return false;
|
|
145
|
-
}
|
|
146
|
-
if (!prot.hasOwnProperty("isPrototypeOf")) {
|
|
147
|
-
return false;
|
|
148
|
-
}
|
|
149
|
-
if (Object.getPrototypeOf(o) !== Object.prototype) {
|
|
150
|
-
return false;
|
|
151
|
-
}
|
|
152
|
-
return true;
|
|
153
|
-
}
|
|
154
|
-
function hasObjectPrototype(o) {
|
|
155
|
-
return Object.prototype.toString.call(o) === "[object Object]";
|
|
156
|
-
}
|
|
157
|
-
function replaceData(prevData, data, options) {
|
|
158
|
-
if (typeof options.structuralSharing === "function") {
|
|
159
|
-
return options.structuralSharing(prevData, data);
|
|
160
|
-
} else if (options.structuralSharing !== false) {
|
|
161
|
-
return replaceEqualDeep(prevData, data);
|
|
162
|
-
}
|
|
163
|
-
return data;
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
// src/focusManager.ts
|
|
167
|
-
var FocusManager = class extends Subscribable {
|
|
168
|
-
#focused;
|
|
169
|
-
#cleanup;
|
|
170
|
-
#setup;
|
|
171
|
-
constructor() {
|
|
172
|
-
super();
|
|
173
|
-
this.#setup = (onFocus) => {
|
|
174
|
-
if (!isServer && window.addEventListener) {
|
|
175
|
-
const listener = () => onFocus();
|
|
176
|
-
window.addEventListener("visibilitychange", listener, false);
|
|
177
|
-
return () => {
|
|
178
|
-
window.removeEventListener("visibilitychange", listener);
|
|
179
|
-
};
|
|
180
|
-
}
|
|
181
|
-
return;
|
|
182
|
-
};
|
|
183
|
-
}
|
|
184
|
-
onSubscribe() {
|
|
185
|
-
if (!this.#cleanup) {
|
|
186
|
-
this.setEventListener(this.#setup);
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
onUnsubscribe() {
|
|
190
|
-
if (!this.hasListeners()) {
|
|
191
|
-
this.#cleanup?.();
|
|
192
|
-
this.#cleanup = void 0;
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
setEventListener(setup) {
|
|
196
|
-
this.#setup = setup;
|
|
197
|
-
this.#cleanup?.();
|
|
198
|
-
this.#cleanup = setup((focused) => {
|
|
199
|
-
if (typeof focused === "boolean") {
|
|
200
|
-
this.setFocused(focused);
|
|
201
|
-
} else {
|
|
202
|
-
this.onFocus();
|
|
203
|
-
}
|
|
204
|
-
});
|
|
205
|
-
}
|
|
206
|
-
setFocused(focused) {
|
|
207
|
-
const changed = this.#focused !== focused;
|
|
208
|
-
if (changed) {
|
|
209
|
-
this.#focused = focused;
|
|
210
|
-
this.onFocus();
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
onFocus() {
|
|
214
|
-
const isFocused = this.isFocused();
|
|
215
|
-
this.listeners.forEach((listener) => {
|
|
216
|
-
listener(isFocused);
|
|
217
|
-
});
|
|
218
|
-
}
|
|
219
|
-
isFocused() {
|
|
220
|
-
if (typeof this.#focused === "boolean") {
|
|
221
|
-
return this.#focused;
|
|
222
|
-
}
|
|
223
|
-
return globalThis.document?.visibilityState !== "hidden";
|
|
224
|
-
}
|
|
225
|
-
};
|
|
226
|
-
var focusManager = new FocusManager();
|
|
227
|
-
|
|
228
|
-
// src/onlineManager.ts
|
|
229
|
-
var OnlineManager = class extends Subscribable {
|
|
230
|
-
#online = true;
|
|
231
|
-
#cleanup;
|
|
232
|
-
#setup;
|
|
233
|
-
constructor() {
|
|
234
|
-
super();
|
|
235
|
-
this.#setup = (onOnline) => {
|
|
236
|
-
if (!isServer && window.addEventListener) {
|
|
237
|
-
const onlineListener = () => onOnline(true);
|
|
238
|
-
const offlineListener = () => onOnline(false);
|
|
239
|
-
window.addEventListener("online", onlineListener, false);
|
|
240
|
-
window.addEventListener("offline", offlineListener, false);
|
|
241
|
-
return () => {
|
|
242
|
-
window.removeEventListener("online", onlineListener);
|
|
243
|
-
window.removeEventListener("offline", offlineListener);
|
|
244
|
-
};
|
|
245
|
-
}
|
|
246
|
-
return;
|
|
247
|
-
};
|
|
248
|
-
}
|
|
249
|
-
onSubscribe() {
|
|
250
|
-
if (!this.#cleanup) {
|
|
251
|
-
this.setEventListener(this.#setup);
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
onUnsubscribe() {
|
|
255
|
-
if (!this.hasListeners()) {
|
|
256
|
-
this.#cleanup?.();
|
|
257
|
-
this.#cleanup = void 0;
|
|
258
|
-
}
|
|
259
|
-
}
|
|
260
|
-
setEventListener(setup) {
|
|
261
|
-
this.#setup = setup;
|
|
262
|
-
this.#cleanup?.();
|
|
263
|
-
this.#cleanup = setup(this.setOnline.bind(this));
|
|
264
|
-
}
|
|
265
|
-
setOnline(online) {
|
|
266
|
-
const changed = this.#online !== online;
|
|
267
|
-
if (changed) {
|
|
268
|
-
this.#online = online;
|
|
269
|
-
this.listeners.forEach((listener) => {
|
|
270
|
-
listener(online);
|
|
271
|
-
});
|
|
272
|
-
}
|
|
273
|
-
}
|
|
274
|
-
isOnline() {
|
|
275
|
-
return this.#online;
|
|
276
|
-
}
|
|
277
|
-
};
|
|
278
|
-
var onlineManager = new OnlineManager();
|
|
279
|
-
|
|
280
|
-
// src/retryer.ts
|
|
281
|
-
function canFetch(networkMode) {
|
|
282
|
-
return (networkMode ?? "online") === "online" ? onlineManager.isOnline() : true;
|
|
283
|
-
}
|
|
284
|
-
|
|
285
|
-
// src/notifyManager.ts
|
|
286
|
-
function createNotifyManager() {
|
|
287
|
-
let queue = [];
|
|
288
|
-
let transactions = 0;
|
|
289
|
-
let notifyFn = (callback) => {
|
|
290
|
-
callback();
|
|
291
|
-
};
|
|
292
|
-
let batchNotifyFn = (callback) => {
|
|
293
|
-
callback();
|
|
294
|
-
};
|
|
295
|
-
let scheduleFn = (cb) => setTimeout(cb, 0);
|
|
296
|
-
const setScheduler = (fn) => {
|
|
297
|
-
scheduleFn = fn;
|
|
298
|
-
};
|
|
299
|
-
const batch = (callback) => {
|
|
300
|
-
let result;
|
|
301
|
-
transactions++;
|
|
302
|
-
try {
|
|
303
|
-
result = callback();
|
|
304
|
-
} finally {
|
|
305
|
-
transactions--;
|
|
306
|
-
if (!transactions) {
|
|
307
|
-
flush();
|
|
308
|
-
}
|
|
309
|
-
}
|
|
310
|
-
return result;
|
|
311
|
-
};
|
|
312
|
-
const schedule = (callback) => {
|
|
313
|
-
if (transactions) {
|
|
314
|
-
queue.push(callback);
|
|
315
|
-
} else {
|
|
316
|
-
scheduleFn(() => {
|
|
317
|
-
notifyFn(callback);
|
|
318
|
-
});
|
|
319
|
-
}
|
|
320
|
-
};
|
|
321
|
-
const batchCalls = (callback) => {
|
|
322
|
-
return (...args) => {
|
|
323
|
-
schedule(() => {
|
|
324
|
-
callback(...args);
|
|
325
|
-
});
|
|
326
|
-
};
|
|
327
|
-
};
|
|
328
|
-
const flush = () => {
|
|
329
|
-
const originalQueue = queue;
|
|
330
|
-
queue = [];
|
|
331
|
-
if (originalQueue.length) {
|
|
332
|
-
scheduleFn(() => {
|
|
333
|
-
batchNotifyFn(() => {
|
|
334
|
-
originalQueue.forEach((callback) => {
|
|
335
|
-
notifyFn(callback);
|
|
336
|
-
});
|
|
337
|
-
});
|
|
338
|
-
});
|
|
339
|
-
}
|
|
340
|
-
};
|
|
341
|
-
const setNotifyFunction = (fn) => {
|
|
342
|
-
notifyFn = fn;
|
|
343
|
-
};
|
|
344
|
-
const setBatchNotifyFunction = (fn) => {
|
|
345
|
-
batchNotifyFn = fn;
|
|
346
|
-
};
|
|
347
|
-
return {
|
|
348
|
-
batch,
|
|
349
|
-
batchCalls,
|
|
350
|
-
schedule,
|
|
351
|
-
setNotifyFunction,
|
|
352
|
-
setBatchNotifyFunction,
|
|
353
|
-
setScheduler
|
|
354
|
-
};
|
|
355
|
-
}
|
|
356
|
-
var notifyManager = createNotifyManager();
|
|
357
|
-
|
|
358
|
-
// src/query.ts
|
|
359
|
-
function fetchState(data, options) {
|
|
360
|
-
return {
|
|
361
|
-
fetchFailureCount: 0,
|
|
362
|
-
fetchFailureReason: null,
|
|
363
|
-
fetchStatus: canFetch(options.networkMode) ? "fetching" : "paused",
|
|
364
|
-
...data === void 0 && {
|
|
365
|
-
error: null,
|
|
366
|
-
status: "pending"
|
|
367
|
-
}
|
|
368
|
-
};
|
|
369
|
-
}
|
|
370
|
-
|
|
371
|
-
// src/queryObserver.ts
|
|
372
|
-
var QueryObserver = class extends Subscribable {
|
|
373
|
-
constructor(client, options) {
|
|
374
|
-
super();
|
|
375
|
-
this.options = options;
|
|
376
|
-
this.#client = client;
|
|
377
|
-
this.#selectError = null;
|
|
378
|
-
this.bindMethods();
|
|
379
|
-
this.setOptions(options);
|
|
380
|
-
}
|
|
381
|
-
#client;
|
|
382
|
-
#currentQuery = void 0;
|
|
383
|
-
#currentQueryInitialState = void 0;
|
|
384
|
-
#currentResult = void 0;
|
|
385
|
-
#currentResultState;
|
|
386
|
-
#currentResultOptions;
|
|
387
|
-
#selectError;
|
|
388
|
-
#selectFn;
|
|
389
|
-
#selectResult;
|
|
390
|
-
// This property keeps track of the last query with defined data.
|
|
391
|
-
// It will be used to pass the previous data and query to the placeholder function between renders.
|
|
392
|
-
#lastQueryWithDefinedData;
|
|
393
|
-
#staleTimeoutId;
|
|
394
|
-
#refetchIntervalId;
|
|
395
|
-
#currentRefetchInterval;
|
|
396
|
-
#trackedProps = /* @__PURE__ */ new Set();
|
|
397
|
-
bindMethods() {
|
|
398
|
-
this.refetch = this.refetch.bind(this);
|
|
399
|
-
}
|
|
400
|
-
onSubscribe() {
|
|
401
|
-
if (this.listeners.size === 1) {
|
|
402
|
-
this.#currentQuery.addObserver(this);
|
|
403
|
-
if (shouldFetchOnMount(this.#currentQuery, this.options)) {
|
|
404
|
-
this.#executeFetch();
|
|
405
|
-
} else {
|
|
406
|
-
this.updateResult();
|
|
407
|
-
}
|
|
408
|
-
this.#updateTimers();
|
|
409
|
-
}
|
|
410
|
-
}
|
|
411
|
-
onUnsubscribe() {
|
|
412
|
-
if (!this.hasListeners()) {
|
|
413
|
-
this.destroy();
|
|
414
|
-
}
|
|
415
|
-
}
|
|
416
|
-
shouldFetchOnReconnect() {
|
|
417
|
-
return shouldFetchOn(
|
|
418
|
-
this.#currentQuery,
|
|
419
|
-
this.options,
|
|
420
|
-
this.options.refetchOnReconnect
|
|
421
|
-
);
|
|
422
|
-
}
|
|
423
|
-
shouldFetchOnWindowFocus() {
|
|
424
|
-
return shouldFetchOn(
|
|
425
|
-
this.#currentQuery,
|
|
426
|
-
this.options,
|
|
427
|
-
this.options.refetchOnWindowFocus
|
|
428
|
-
);
|
|
429
|
-
}
|
|
430
|
-
destroy() {
|
|
431
|
-
this.listeners = /* @__PURE__ */ new Set();
|
|
432
|
-
this.#clearStaleTimeout();
|
|
433
|
-
this.#clearRefetchInterval();
|
|
434
|
-
this.#currentQuery.removeObserver(this);
|
|
435
|
-
}
|
|
436
|
-
setOptions(options, notifyOptions) {
|
|
437
|
-
const prevOptions = this.options;
|
|
438
|
-
const prevQuery = this.#currentQuery;
|
|
439
|
-
this.options = this.#client.defaultQueryOptions(options);
|
|
440
|
-
if (this.options.enabled !== void 0 && typeof this.options.enabled !== "boolean") {
|
|
441
|
-
throw new Error("Expected enabled to be a boolean");
|
|
442
|
-
}
|
|
443
|
-
this.#updateQuery();
|
|
444
|
-
this.#currentQuery.setOptions(this.options);
|
|
445
|
-
if (prevOptions._defaulted && !shallowEqualObjects(this.options, prevOptions)) {
|
|
446
|
-
this.#client.getQueryCache().notify({
|
|
447
|
-
type: "observerOptionsUpdated",
|
|
448
|
-
query: this.#currentQuery,
|
|
449
|
-
observer: this
|
|
450
|
-
});
|
|
451
|
-
}
|
|
452
|
-
const mounted = this.hasListeners();
|
|
453
|
-
if (mounted && shouldFetchOptionally(
|
|
454
|
-
this.#currentQuery,
|
|
455
|
-
prevQuery,
|
|
456
|
-
this.options,
|
|
457
|
-
prevOptions
|
|
458
|
-
)) {
|
|
459
|
-
this.#executeFetch();
|
|
460
|
-
}
|
|
461
|
-
this.updateResult(notifyOptions);
|
|
462
|
-
if (mounted && (this.#currentQuery !== prevQuery || this.options.enabled !== prevOptions.enabled || this.options.staleTime !== prevOptions.staleTime)) {
|
|
463
|
-
this.#updateStaleTimeout();
|
|
464
|
-
}
|
|
465
|
-
const nextRefetchInterval = this.#computeRefetchInterval();
|
|
466
|
-
if (mounted && (this.#currentQuery !== prevQuery || this.options.enabled !== prevOptions.enabled || nextRefetchInterval !== this.#currentRefetchInterval)) {
|
|
467
|
-
this.#updateRefetchInterval(nextRefetchInterval);
|
|
468
|
-
}
|
|
469
|
-
}
|
|
470
|
-
getOptimisticResult(options) {
|
|
471
|
-
const query = this.#client.getQueryCache().build(this.#client, options);
|
|
472
|
-
const result = this.createResult(query, options);
|
|
473
|
-
if (shouldAssignObserverCurrentProperties(this, result)) {
|
|
474
|
-
this.#currentResult = result;
|
|
475
|
-
this.#currentResultOptions = this.options;
|
|
476
|
-
this.#currentResultState = this.#currentQuery.state;
|
|
477
|
-
}
|
|
478
|
-
return result;
|
|
479
|
-
}
|
|
480
|
-
getCurrentResult() {
|
|
481
|
-
return this.#currentResult;
|
|
482
|
-
}
|
|
483
|
-
trackResult(result, onPropTracked) {
|
|
484
|
-
const trackedResult = {};
|
|
485
|
-
Object.keys(result).forEach((key) => {
|
|
486
|
-
Object.defineProperty(trackedResult, key, {
|
|
487
|
-
configurable: false,
|
|
488
|
-
enumerable: true,
|
|
489
|
-
get: () => {
|
|
490
|
-
this.trackProp(key);
|
|
491
|
-
onPropTracked?.(key);
|
|
492
|
-
return result[key];
|
|
493
|
-
}
|
|
494
|
-
});
|
|
495
|
-
});
|
|
496
|
-
return trackedResult;
|
|
497
|
-
}
|
|
498
|
-
trackProp(key) {
|
|
499
|
-
this.#trackedProps.add(key);
|
|
500
|
-
}
|
|
501
|
-
getCurrentQuery() {
|
|
502
|
-
return this.#currentQuery;
|
|
503
|
-
}
|
|
504
|
-
refetch({ ...options } = {}) {
|
|
505
|
-
return this.fetch({
|
|
506
|
-
...options
|
|
507
|
-
});
|
|
508
|
-
}
|
|
509
|
-
fetchOptimistic(options) {
|
|
510
|
-
const defaultedOptions = this.#client.defaultQueryOptions(options);
|
|
511
|
-
const query = this.#client.getQueryCache().build(this.#client, defaultedOptions);
|
|
512
|
-
query.isFetchingOptimistic = true;
|
|
513
|
-
return query.fetch().then(() => this.createResult(query, defaultedOptions));
|
|
514
|
-
}
|
|
515
|
-
fetch(fetchOptions) {
|
|
516
|
-
return this.#executeFetch({
|
|
517
|
-
...fetchOptions,
|
|
518
|
-
cancelRefetch: fetchOptions.cancelRefetch ?? true
|
|
519
|
-
}).then(() => {
|
|
520
|
-
this.updateResult();
|
|
521
|
-
return this.#currentResult;
|
|
522
|
-
});
|
|
523
|
-
}
|
|
524
|
-
#executeFetch(fetchOptions) {
|
|
525
|
-
this.#updateQuery();
|
|
526
|
-
let promise = this.#currentQuery.fetch(
|
|
527
|
-
this.options,
|
|
528
|
-
fetchOptions
|
|
529
|
-
);
|
|
530
|
-
if (!fetchOptions?.throwOnError) {
|
|
531
|
-
promise = promise.catch(noop);
|
|
532
|
-
}
|
|
533
|
-
return promise;
|
|
534
|
-
}
|
|
535
|
-
#updateStaleTimeout() {
|
|
536
|
-
this.#clearStaleTimeout();
|
|
537
|
-
if (isServer || this.#currentResult.isStale || !isValidTimeout(this.options.staleTime)) {
|
|
538
|
-
return;
|
|
539
|
-
}
|
|
540
|
-
const time = timeUntilStale(
|
|
541
|
-
this.#currentResult.dataUpdatedAt,
|
|
542
|
-
this.options.staleTime
|
|
543
|
-
);
|
|
544
|
-
const timeout = time + 1;
|
|
545
|
-
this.#staleTimeoutId = setTimeout(() => {
|
|
546
|
-
if (!this.#currentResult.isStale) {
|
|
547
|
-
this.updateResult();
|
|
548
|
-
}
|
|
549
|
-
}, timeout);
|
|
550
|
-
}
|
|
551
|
-
#computeRefetchInterval() {
|
|
552
|
-
return (typeof this.options.refetchInterval === "function" ? this.options.refetchInterval(this.#currentQuery) : this.options.refetchInterval) ?? false;
|
|
553
|
-
}
|
|
554
|
-
#updateRefetchInterval(nextInterval) {
|
|
555
|
-
this.#clearRefetchInterval();
|
|
556
|
-
this.#currentRefetchInterval = nextInterval;
|
|
557
|
-
if (isServer || this.options.enabled === false || !isValidTimeout(this.#currentRefetchInterval) || this.#currentRefetchInterval === 0) {
|
|
558
|
-
return;
|
|
559
|
-
}
|
|
560
|
-
this.#refetchIntervalId = setInterval(() => {
|
|
561
|
-
if (this.options.refetchIntervalInBackground || focusManager.isFocused()) {
|
|
562
|
-
this.#executeFetch();
|
|
563
|
-
}
|
|
564
|
-
}, this.#currentRefetchInterval);
|
|
565
|
-
}
|
|
566
|
-
#updateTimers() {
|
|
567
|
-
this.#updateStaleTimeout();
|
|
568
|
-
this.#updateRefetchInterval(this.#computeRefetchInterval());
|
|
569
|
-
}
|
|
570
|
-
#clearStaleTimeout() {
|
|
571
|
-
if (this.#staleTimeoutId) {
|
|
572
|
-
clearTimeout(this.#staleTimeoutId);
|
|
573
|
-
this.#staleTimeoutId = void 0;
|
|
574
|
-
}
|
|
575
|
-
}
|
|
576
|
-
#clearRefetchInterval() {
|
|
577
|
-
if (this.#refetchIntervalId) {
|
|
578
|
-
clearInterval(this.#refetchIntervalId);
|
|
579
|
-
this.#refetchIntervalId = void 0;
|
|
580
|
-
}
|
|
581
|
-
}
|
|
582
|
-
createResult(query, options) {
|
|
583
|
-
const prevQuery = this.#currentQuery;
|
|
584
|
-
const prevOptions = this.options;
|
|
585
|
-
const prevResult = this.#currentResult;
|
|
586
|
-
const prevResultState = this.#currentResultState;
|
|
587
|
-
const prevResultOptions = this.#currentResultOptions;
|
|
588
|
-
const queryChange = query !== prevQuery;
|
|
589
|
-
const queryInitialState = queryChange ? query.state : this.#currentQueryInitialState;
|
|
590
|
-
const { state } = query;
|
|
591
|
-
let newState = { ...state };
|
|
592
|
-
let isPlaceholderData = false;
|
|
593
|
-
let data;
|
|
594
|
-
if (options._optimisticResults) {
|
|
595
|
-
const mounted = this.hasListeners();
|
|
596
|
-
const fetchOnMount = !mounted && shouldFetchOnMount(query, options);
|
|
597
|
-
const fetchOptionally = mounted && shouldFetchOptionally(query, prevQuery, options, prevOptions);
|
|
598
|
-
if (fetchOnMount || fetchOptionally) {
|
|
599
|
-
newState = {
|
|
600
|
-
...newState,
|
|
601
|
-
...fetchState(state.data, query.options)
|
|
602
|
-
};
|
|
603
|
-
}
|
|
604
|
-
if (options._optimisticResults === "isRestoring") {
|
|
605
|
-
newState.fetchStatus = "idle";
|
|
606
|
-
}
|
|
607
|
-
}
|
|
608
|
-
let { error, errorUpdatedAt, status } = newState;
|
|
609
|
-
if (options.select && newState.data !== void 0) {
|
|
610
|
-
if (prevResult && newState.data === prevResultState?.data && options.select === this.#selectFn) {
|
|
611
|
-
data = this.#selectResult;
|
|
612
|
-
} else {
|
|
613
|
-
try {
|
|
614
|
-
this.#selectFn = options.select;
|
|
615
|
-
data = options.select(newState.data);
|
|
616
|
-
data = replaceData(prevResult?.data, data, options);
|
|
617
|
-
this.#selectResult = data;
|
|
618
|
-
this.#selectError = null;
|
|
619
|
-
} catch (selectError) {
|
|
620
|
-
this.#selectError = selectError;
|
|
621
|
-
}
|
|
622
|
-
}
|
|
623
|
-
} else {
|
|
624
|
-
data = newState.data;
|
|
625
|
-
}
|
|
626
|
-
if (options.placeholderData !== void 0 && data === void 0 && status === "pending") {
|
|
627
|
-
let placeholderData;
|
|
628
|
-
if (prevResult?.isPlaceholderData && options.placeholderData === prevResultOptions?.placeholderData) {
|
|
629
|
-
placeholderData = prevResult.data;
|
|
630
|
-
} else {
|
|
631
|
-
placeholderData = typeof options.placeholderData === "function" ? options.placeholderData(
|
|
632
|
-
this.#lastQueryWithDefinedData?.state.data,
|
|
633
|
-
this.#lastQueryWithDefinedData
|
|
634
|
-
) : options.placeholderData;
|
|
635
|
-
if (options.select && placeholderData !== void 0) {
|
|
636
|
-
try {
|
|
637
|
-
placeholderData = options.select(placeholderData);
|
|
638
|
-
this.#selectError = null;
|
|
639
|
-
} catch (selectError) {
|
|
640
|
-
this.#selectError = selectError;
|
|
641
|
-
}
|
|
642
|
-
}
|
|
643
|
-
}
|
|
644
|
-
if (placeholderData !== void 0) {
|
|
645
|
-
status = "success";
|
|
646
|
-
data = replaceData(
|
|
647
|
-
prevResult?.data,
|
|
648
|
-
placeholderData,
|
|
649
|
-
options
|
|
650
|
-
);
|
|
651
|
-
isPlaceholderData = true;
|
|
652
|
-
}
|
|
653
|
-
}
|
|
654
|
-
if (this.#selectError) {
|
|
655
|
-
error = this.#selectError;
|
|
656
|
-
data = this.#selectResult;
|
|
657
|
-
errorUpdatedAt = Date.now();
|
|
658
|
-
status = "error";
|
|
659
|
-
}
|
|
660
|
-
const isFetching = newState.fetchStatus === "fetching";
|
|
661
|
-
const isPending = status === "pending";
|
|
662
|
-
const isError = status === "error";
|
|
663
|
-
const isLoading = isPending && isFetching;
|
|
664
|
-
const hasData = data !== void 0;
|
|
665
|
-
const result = {
|
|
666
|
-
status,
|
|
667
|
-
fetchStatus: newState.fetchStatus,
|
|
668
|
-
isPending,
|
|
669
|
-
isSuccess: status === "success",
|
|
670
|
-
isError,
|
|
671
|
-
isInitialLoading: isLoading,
|
|
672
|
-
isLoading,
|
|
673
|
-
data,
|
|
674
|
-
dataUpdatedAt: newState.dataUpdatedAt,
|
|
675
|
-
error,
|
|
676
|
-
errorUpdatedAt,
|
|
677
|
-
failureCount: newState.fetchFailureCount,
|
|
678
|
-
failureReason: newState.fetchFailureReason,
|
|
679
|
-
errorUpdateCount: newState.errorUpdateCount,
|
|
680
|
-
isFetched: newState.dataUpdateCount > 0 || newState.errorUpdateCount > 0,
|
|
681
|
-
isFetchedAfterMount: newState.dataUpdateCount > queryInitialState.dataUpdateCount || newState.errorUpdateCount > queryInitialState.errorUpdateCount,
|
|
682
|
-
isFetching,
|
|
683
|
-
isRefetching: isFetching && !isPending,
|
|
684
|
-
isLoadingError: isError && !hasData,
|
|
685
|
-
isPaused: newState.fetchStatus === "paused",
|
|
686
|
-
isPlaceholderData,
|
|
687
|
-
isRefetchError: isError && hasData,
|
|
688
|
-
isStale: isStale(query, options),
|
|
689
|
-
refetch: this.refetch
|
|
690
|
-
};
|
|
691
|
-
return result;
|
|
692
|
-
}
|
|
693
|
-
updateResult(notifyOptions) {
|
|
694
|
-
const prevResult = this.#currentResult;
|
|
695
|
-
const nextResult = this.createResult(this.#currentQuery, this.options);
|
|
696
|
-
this.#currentResultState = this.#currentQuery.state;
|
|
697
|
-
this.#currentResultOptions = this.options;
|
|
698
|
-
if (this.#currentResultState.data !== void 0) {
|
|
699
|
-
this.#lastQueryWithDefinedData = this.#currentQuery;
|
|
700
|
-
}
|
|
701
|
-
if (shallowEqualObjects(nextResult, prevResult)) {
|
|
702
|
-
return;
|
|
703
|
-
}
|
|
704
|
-
this.#currentResult = nextResult;
|
|
705
|
-
const defaultNotifyOptions = {};
|
|
706
|
-
const shouldNotifyListeners = () => {
|
|
707
|
-
if (!prevResult) {
|
|
708
|
-
return true;
|
|
709
|
-
}
|
|
710
|
-
const { notifyOnChangeProps } = this.options;
|
|
711
|
-
const notifyOnChangePropsValue = typeof notifyOnChangeProps === "function" ? notifyOnChangeProps() : notifyOnChangeProps;
|
|
712
|
-
if (notifyOnChangePropsValue === "all" || !notifyOnChangePropsValue && !this.#trackedProps.size) {
|
|
713
|
-
return true;
|
|
714
|
-
}
|
|
715
|
-
const includedProps = new Set(
|
|
716
|
-
notifyOnChangePropsValue ?? this.#trackedProps
|
|
717
|
-
);
|
|
718
|
-
if (this.options.throwOnError) {
|
|
719
|
-
includedProps.add("error");
|
|
720
|
-
}
|
|
721
|
-
return Object.keys(this.#currentResult).some((key) => {
|
|
722
|
-
const typedKey = key;
|
|
723
|
-
const changed = this.#currentResult[typedKey] !== prevResult[typedKey];
|
|
724
|
-
return changed && includedProps.has(typedKey);
|
|
725
|
-
});
|
|
726
|
-
};
|
|
727
|
-
if (notifyOptions?.listeners !== false && shouldNotifyListeners()) {
|
|
728
|
-
defaultNotifyOptions.listeners = true;
|
|
729
|
-
}
|
|
730
|
-
this.#notify({ ...defaultNotifyOptions, ...notifyOptions });
|
|
731
|
-
}
|
|
732
|
-
#updateQuery() {
|
|
733
|
-
const query = this.#client.getQueryCache().build(this.#client, this.options);
|
|
734
|
-
if (query === this.#currentQuery) {
|
|
735
|
-
return;
|
|
736
|
-
}
|
|
737
|
-
const prevQuery = this.#currentQuery;
|
|
738
|
-
this.#currentQuery = query;
|
|
739
|
-
this.#currentQueryInitialState = query.state;
|
|
740
|
-
if (this.hasListeners()) {
|
|
741
|
-
prevQuery?.removeObserver(this);
|
|
742
|
-
query.addObserver(this);
|
|
743
|
-
}
|
|
744
|
-
}
|
|
745
|
-
onQueryUpdate() {
|
|
746
|
-
this.updateResult();
|
|
747
|
-
if (this.hasListeners()) {
|
|
748
|
-
this.#updateTimers();
|
|
749
|
-
}
|
|
750
|
-
}
|
|
751
|
-
#notify(notifyOptions) {
|
|
752
|
-
notifyManager.batch(() => {
|
|
753
|
-
if (notifyOptions.listeners) {
|
|
754
|
-
this.listeners.forEach((listener) => {
|
|
755
|
-
listener(this.#currentResult);
|
|
756
|
-
});
|
|
757
|
-
}
|
|
758
|
-
this.#client.getQueryCache().notify({
|
|
759
|
-
query: this.#currentQuery,
|
|
760
|
-
type: "observerResultsUpdated"
|
|
761
|
-
});
|
|
762
|
-
});
|
|
763
|
-
}
|
|
764
|
-
};
|
|
765
|
-
function shouldLoadOnMount(query, options) {
|
|
766
|
-
return options.enabled !== false && query.state.data === void 0 && !(query.state.status === "error" && options.retryOnMount === false);
|
|
767
|
-
}
|
|
768
|
-
function shouldFetchOnMount(query, options) {
|
|
769
|
-
return shouldLoadOnMount(query, options) || query.state.data !== void 0 && shouldFetchOn(query, options, options.refetchOnMount);
|
|
770
|
-
}
|
|
771
|
-
function shouldFetchOn(query, options, field) {
|
|
772
|
-
if (options.enabled !== false) {
|
|
773
|
-
const value = typeof field === "function" ? field(query) : field;
|
|
774
|
-
return value === "always" || value !== false && isStale(query, options);
|
|
775
|
-
}
|
|
776
|
-
return false;
|
|
777
|
-
}
|
|
778
|
-
function shouldFetchOptionally(query, prevQuery, options, prevOptions) {
|
|
779
|
-
return (query !== prevQuery || prevOptions.enabled === false) && (!options.suspense || query.state.status !== "error") && isStale(query, options);
|
|
780
|
-
}
|
|
781
|
-
function isStale(query, options) {
|
|
782
|
-
return options.enabled !== false && query.isStaleByTime(options.staleTime);
|
|
783
|
-
}
|
|
784
|
-
function shouldAssignObserverCurrentProperties(observer, optimisticResult) {
|
|
785
|
-
if (!shallowEqualObjects(observer.getCurrentResult(), optimisticResult)) {
|
|
786
|
-
return true;
|
|
787
|
-
}
|
|
788
|
-
return false;
|
|
789
|
-
}
|
|
790
|
-
|
|
791
|
-
var QueryClientContext = React__namespace.createContext(
|
|
792
|
-
void 0
|
|
793
|
-
);
|
|
794
|
-
var useQueryClient = (queryClient) => {
|
|
795
|
-
const client = React__namespace.useContext(QueryClientContext);
|
|
796
|
-
if (queryClient) {
|
|
797
|
-
return queryClient;
|
|
798
|
-
}
|
|
799
|
-
if (!client) {
|
|
800
|
-
throw new Error("No QueryClient set, use QueryClientProvider to set one");
|
|
801
|
-
}
|
|
802
|
-
return client;
|
|
803
|
-
};
|
|
804
|
-
|
|
805
|
-
var IsRestoringContext = React__namespace.createContext(false);
|
|
806
|
-
var useIsRestoring = () => React__namespace.useContext(IsRestoringContext);
|
|
807
|
-
IsRestoringContext.Provider;
|
|
808
|
-
|
|
809
|
-
function createValue() {
|
|
810
|
-
let isReset = false;
|
|
811
|
-
return {
|
|
812
|
-
clearReset: () => {
|
|
813
|
-
isReset = false;
|
|
814
|
-
},
|
|
815
|
-
reset: () => {
|
|
816
|
-
isReset = true;
|
|
817
|
-
},
|
|
818
|
-
isReset: () => {
|
|
819
|
-
return isReset;
|
|
820
|
-
}
|
|
821
|
-
};
|
|
822
|
-
}
|
|
823
|
-
var QueryErrorResetBoundaryContext = React__namespace.createContext(createValue());
|
|
824
|
-
var useQueryErrorResetBoundary = () => React__namespace.useContext(QueryErrorResetBoundaryContext);
|
|
825
|
-
|
|
826
|
-
// src/utils.ts
|
|
827
|
-
function shouldThrowError(throwError, params) {
|
|
828
|
-
if (typeof throwError === "function") {
|
|
829
|
-
return throwError(...params);
|
|
830
|
-
}
|
|
831
|
-
return !!throwError;
|
|
832
|
-
}
|
|
833
|
-
|
|
834
|
-
var ensurePreventErrorBoundaryRetry = (options, errorResetBoundary) => {
|
|
835
|
-
if (options.suspense || options.throwOnError) {
|
|
836
|
-
if (!errorResetBoundary.isReset()) {
|
|
837
|
-
options.retryOnMount = false;
|
|
838
|
-
}
|
|
839
|
-
}
|
|
840
|
-
};
|
|
841
|
-
var useClearResetErrorBoundary = (errorResetBoundary) => {
|
|
842
|
-
React__namespace.useEffect(() => {
|
|
843
|
-
errorResetBoundary.clearReset();
|
|
844
|
-
}, [errorResetBoundary]);
|
|
845
|
-
};
|
|
846
|
-
var getHasError = ({
|
|
847
|
-
result,
|
|
848
|
-
errorResetBoundary,
|
|
849
|
-
throwOnError,
|
|
850
|
-
query
|
|
851
|
-
}) => {
|
|
852
|
-
return result.isError && !errorResetBoundary.isReset() && !result.isFetching && query && shouldThrowError(throwOnError, [result.error, query]);
|
|
853
|
-
};
|
|
854
|
-
|
|
855
|
-
// src/suspense.ts
|
|
856
|
-
var ensureStaleTime = (defaultedOptions) => {
|
|
857
|
-
if (defaultedOptions.suspense) {
|
|
858
|
-
if (typeof defaultedOptions.staleTime !== "number") {
|
|
859
|
-
defaultedOptions.staleTime = 1e3;
|
|
860
|
-
}
|
|
861
|
-
}
|
|
862
|
-
};
|
|
863
|
-
var shouldSuspend = (defaultedOptions, result) => defaultedOptions?.suspense && result.isPending;
|
|
864
|
-
var fetchOptimistic = (defaultedOptions, observer, errorResetBoundary) => observer.fetchOptimistic(defaultedOptions).catch(() => {
|
|
865
|
-
errorResetBoundary.clearReset();
|
|
866
|
-
});
|
|
867
|
-
|
|
868
|
-
function useBaseQuery(options, Observer, queryClient) {
|
|
869
|
-
const client = useQueryClient(queryClient);
|
|
870
|
-
const isRestoring = useIsRestoring();
|
|
871
|
-
const errorResetBoundary = useQueryErrorResetBoundary();
|
|
872
|
-
const defaultedOptions = client.defaultQueryOptions(options);
|
|
873
|
-
defaultedOptions._optimisticResults = isRestoring ? "isRestoring" : "optimistic";
|
|
874
|
-
ensureStaleTime(defaultedOptions);
|
|
875
|
-
ensurePreventErrorBoundaryRetry(defaultedOptions, errorResetBoundary);
|
|
876
|
-
useClearResetErrorBoundary(errorResetBoundary);
|
|
877
|
-
const [observer] = React__namespace.useState(
|
|
878
|
-
() => new Observer(
|
|
879
|
-
client,
|
|
880
|
-
defaultedOptions
|
|
881
|
-
)
|
|
882
|
-
);
|
|
883
|
-
const result = observer.getOptimisticResult(defaultedOptions);
|
|
884
|
-
React__namespace.useSyncExternalStore(
|
|
885
|
-
React__namespace.useCallback(
|
|
886
|
-
(onStoreChange) => {
|
|
887
|
-
const unsubscribe = isRestoring ? () => void 0 : observer.subscribe(notifyManager.batchCalls(onStoreChange));
|
|
888
|
-
observer.updateResult();
|
|
889
|
-
return unsubscribe;
|
|
890
|
-
},
|
|
891
|
-
[observer, isRestoring]
|
|
892
|
-
),
|
|
893
|
-
() => observer.getCurrentResult(),
|
|
894
|
-
() => observer.getCurrentResult()
|
|
895
|
-
);
|
|
896
|
-
React__namespace.useEffect(() => {
|
|
897
|
-
observer.setOptions(defaultedOptions, { listeners: false });
|
|
898
|
-
}, [defaultedOptions, observer]);
|
|
899
|
-
if (shouldSuspend(defaultedOptions, result)) {
|
|
900
|
-
throw fetchOptimistic(defaultedOptions, observer, errorResetBoundary);
|
|
901
|
-
}
|
|
902
|
-
if (getHasError({
|
|
903
|
-
result,
|
|
904
|
-
errorResetBoundary,
|
|
905
|
-
throwOnError: defaultedOptions.throwOnError,
|
|
906
|
-
query: client.getQueryCache().get(defaultedOptions.queryHash)
|
|
907
|
-
})) {
|
|
908
|
-
throw result.error;
|
|
909
|
-
}
|
|
910
|
-
return !defaultedOptions.notifyOnChangeProps ? observer.trackResult(result) : result;
|
|
911
|
-
}
|
|
912
|
-
|
|
913
|
-
function useQuery(options, queryClient) {
|
|
914
|
-
return useBaseQuery(options, QueryObserver, queryClient);
|
|
915
|
-
}
|
|
916
|
-
|
|
917
48
|
var _globalProps$organiza$1;
|
|
918
49
|
var GITHUB_INTEGRATIONS_BASE_API_URL = "/github_integrations";
|
|
919
50
|
({
|
|
@@ -947,7 +78,7 @@ var STALE_TIME_CONFIG = {
|
|
|
947
78
|
|
|
948
79
|
var useFetchGithubRepositories = function useFetchGithubRepositories(_ref) {
|
|
949
80
|
var isConnected = _ref.isConnected;
|
|
950
|
-
return useQuery({
|
|
81
|
+
return reactQuery.useQuery({
|
|
951
82
|
queryKey: [QUERY_KEYS.GITHUB_REPOSITORIES_LIST],
|
|
952
83
|
queryFn: githubAccountsApi.repositories,
|
|
953
84
|
staleTime: STALE_TIME_CONFIG.staleTime,
|
|
@@ -959,7 +90,7 @@ var Header = reactUtils.withT(function (_ref) {
|
|
|
959
90
|
var t = _ref.t;
|
|
960
91
|
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
961
92
|
className: "neeto-ui-text-gray-800 mb-1 flex w-full flex-row items-center space-x-2 font-sans text-lg font-medium leading-6 antialiased",
|
|
962
|
-
children: [/*#__PURE__*/jsxRuntime.jsx(
|
|
93
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(Github__default["default"], {
|
|
963
94
|
size: 16
|
|
964
95
|
}), /*#__PURE__*/jsxRuntime.jsx(Typography__default["default"], {
|
|
965
96
|
style: "h4",
|
|
@@ -976,7 +107,7 @@ var Configure = reactUtils.withT(function (_ref) {
|
|
|
976
107
|
className: "neeto-ui-text-gray-900 flex-shrink-0 font-sans text-sm font-normal leading-6 antialiased",
|
|
977
108
|
children: /*#__PURE__*/jsxRuntime.jsx(Button__default["default"], {
|
|
978
109
|
href: installationUrl,
|
|
979
|
-
icon: isConnected ?
|
|
110
|
+
icon: isConnected ? Settings__default["default"] : Plus__default["default"],
|
|
980
111
|
iconPosition: "left",
|
|
981
112
|
iconSize: 20,
|
|
982
113
|
size: "small",
|
|
@@ -1008,7 +139,7 @@ var List$1 = reactUtils.withT(function (_ref) {
|
|
|
1008
139
|
className: "flex w-full items-center space-x-2",
|
|
1009
140
|
children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
1010
141
|
className: "flex items-center gap-1",
|
|
1011
|
-
children: [type === "Organization" ? /*#__PURE__*/jsxRuntime.jsx(
|
|
142
|
+
children: [type === "Organization" ? /*#__PURE__*/jsxRuntime.jsx(Building__default["default"], {
|
|
1012
143
|
className: "neeto-ui-text-gray-600",
|
|
1013
144
|
size: 24
|
|
1014
145
|
}) : /*#__PURE__*/jsxRuntime.jsx(Avatar__default["default"], {
|
|
@@ -1137,7 +268,7 @@ var NoRepositories = reactUtils.withT(function (_ref) {
|
|
|
1137
268
|
children: t("neetoGithub.noReposDescription")
|
|
1138
269
|
}), /*#__PURE__*/jsxRuntime.jsx(Button__default["default"], {
|
|
1139
270
|
href: installationUrl,
|
|
1140
|
-
icon:
|
|
271
|
+
icon: Github__default["default"],
|
|
1141
272
|
iconPosition: "left",
|
|
1142
273
|
label: t("neetoGithub.connectRepository"),
|
|
1143
274
|
size: "medium",
|
|
@@ -1166,7 +297,7 @@ var RepositoryTile = function RepositoryTile(_ref) {
|
|
|
1166
297
|
repository = _ref.repository;
|
|
1167
298
|
var _useTranslation = reactI18next.useTranslation(),
|
|
1168
299
|
t = _useTranslation.t;
|
|
1169
|
-
var _useState =
|
|
300
|
+
var _useState = react.useState(false),
|
|
1170
301
|
_useState2 = _slicedToArray(_useState, 2),
|
|
1171
302
|
isLoading = _useState2[0],
|
|
1172
303
|
setIsLoading = _useState2[1];
|
|
@@ -1178,13 +309,13 @@ var RepositoryTile = function RepositoryTile(_ref) {
|
|
|
1178
309
|
className: "neeto-ui-border-gray-300 flex flex-col justify-between gap-3 border-b border-solid py-3 pl-3 pr-3 last:border-b-0 md:flex-row md:items-center md:pl-5",
|
|
1179
310
|
children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
1180
311
|
className: "width-calc flex items-center space-x-2",
|
|
1181
|
-
children: [/*#__PURE__*/jsxRuntime.jsx(
|
|
312
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(Github__default["default"], {
|
|
1182
313
|
className: "flex-shrink-0",
|
|
1183
314
|
size: 16
|
|
1184
315
|
}), /*#__PURE__*/jsxRuntime.jsx(Typography__default["default"], {
|
|
1185
316
|
style: "body2",
|
|
1186
317
|
children: fullName
|
|
1187
|
-
}), isPrivate && /*#__PURE__*/jsxRuntime.jsx(
|
|
318
|
+
}), isPrivate && /*#__PURE__*/jsxRuntime.jsx(Lock__default["default"], {
|
|
1188
319
|
className: "flex-shrink-0",
|
|
1189
320
|
size: 16
|
|
1190
321
|
}), /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
@@ -1231,7 +362,7 @@ var List = reactUtils.withT(function (_ref) {
|
|
|
1231
362
|
children: /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
1232
363
|
className: "m-0 h-full w-full p-0",
|
|
1233
364
|
children: neetoCist.isPresent(filteredRepositories) ? filteredRepositories.map(function (repository, index) {
|
|
1234
|
-
return /*#__PURE__*/
|
|
365
|
+
return /*#__PURE__*/react.createElement(RepositoryTile, {
|
|
1235
366
|
isConnecting: isConnecting,
|
|
1236
367
|
onConnect: onConnect,
|
|
1237
368
|
repository: repository,
|
|
@@ -1262,7 +393,7 @@ var NotConnected = reactUtils.withT(function (_ref) {
|
|
|
1262
393
|
})
|
|
1263
394
|
}), /*#__PURE__*/jsxRuntime.jsx(Button__default["default"], {
|
|
1264
395
|
href: installationUrl,
|
|
1265
|
-
icon:
|
|
396
|
+
icon: Github__default["default"],
|
|
1266
397
|
iconPosition: "left",
|
|
1267
398
|
label: t("neetoGithub.connectGithub"),
|
|
1268
399
|
size: "medium",
|
|
@@ -1280,7 +411,7 @@ var Private = function Private(_ref) {
|
|
|
1280
411
|
troubleshootUrl = _ref.troubleshootUrl;
|
|
1281
412
|
var _useTranslation = reactI18next.useTranslation(),
|
|
1282
413
|
t = _useTranslation.t;
|
|
1283
|
-
var _useState =
|
|
414
|
+
var _useState = react.useState(repositories),
|
|
1284
415
|
_useState2 = _slicedToArray(_useState, 2),
|
|
1285
416
|
filteredRepositories = _useState2[0],
|
|
1286
417
|
setFilteredRepositories = _useState2[1];
|
|
@@ -3697,7 +2828,7 @@ var NeetoGithubNanoPane = function NeetoGithubNanoPane(_ref) {
|
|
|
3697
2828
|
title = _ref$title === void 0 ? "" : _ref$title;
|
|
3698
2829
|
var _useTranslation = reactI18next.useTranslation(),
|
|
3699
2830
|
t = _useTranslation.t;
|
|
3700
|
-
var initialFocusRef =
|
|
2831
|
+
var initialFocusRef = react.useRef(null);
|
|
3701
2832
|
var _useFetchGithubReposi = useFetchGithubRepositories({
|
|
3702
2833
|
isConnected: isOpen && isConnected
|
|
3703
2834
|
}),
|