@lastbrain/ai-ui-react 1.0.58 → 1.0.59
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/components/AiStatusButton.d.ts.map +1 -1
- package/dist/components/AiStatusButton.js +6 -2
- package/dist/context/LBAuthProvider.d.ts.map +1 -1
- package/dist/context/LBAuthProvider.js +34 -6
- package/package.json +1 -1
- package/src/components/AiStatusButton.tsx +8 -2
- package/src/context/LBAuthProvider.tsx +78 -39
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AiStatusButton.d.ts","sourceRoot":"","sources":["../../src/components/AiStatusButton.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAmBtD,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,QAAQ,GAAG,IAAI,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,cAAc,CAAC,EAC7B,MAAM,EACN,OAAe,EACf,SAAc,GACf,EAAE,mBAAmB,
|
|
1
|
+
{"version":3,"file":"AiStatusButton.d.ts","sourceRoot":"","sources":["../../src/components/AiStatusButton.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAmBtD,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,QAAQ,GAAG,IAAI,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,cAAc,CAAC,EAC7B,MAAM,EACN,OAAe,EACf,SAAc,GACf,EAAE,mBAAmB,2CAolCrB"}
|
|
@@ -48,7 +48,7 @@ export function AiStatusButton({ status, loading = false, className = "", }) {
|
|
|
48
48
|
const effectiveStatus = status || {
|
|
49
49
|
...lbApiStatus,
|
|
50
50
|
...lbBasicStatus,
|
|
51
|
-
storage: lbStorageStatus?.storage
|
|
51
|
+
storage: lbStorageStatus?.storage,
|
|
52
52
|
};
|
|
53
53
|
// Récupérer refetchProviders depuis AiProvider si disponible
|
|
54
54
|
let refetchProviders;
|
|
@@ -434,7 +434,11 @@ export function AiStatusButton({ status, loading = false, className = "", }) {
|
|
|
434
434
|
effectiveStatus.api_key?.env ||
|
|
435
435
|
"N/A" })] }), _jsxs("div", { style: aiStyles.tooltipRow, children: [_jsx("span", { style: aiStyles.tooltipLabel, children: "Rate Limit:" }), _jsxs("span", { style: aiStyles.tooltipValue, children: [effectiveStatus.apiKey?.rate_limit_rpm ||
|
|
436
436
|
effectiveStatus.api_key?.rate_limit_rpm ||
|
|
437
|
-
0, " ", "req/min"] })] })] }), _jsxs("div", { style: aiStyles.tooltipSection, children: [_jsx("div", { style: aiStyles.tooltipSubtitle, children: "Wallet" }), _jsxs("div", { style: aiStyles.tooltipRow, children: [_jsx("span", { style: aiStyles.tooltipLabel, children: "Total:" }), _jsxs("span", { style: aiStyles.tooltipValue, children: ["$", formatFixed(balanceUsed, 6), " / $", formatNumber(balanceTotal)] }), renderUsageCircle(balancePercentage)] })] }), _jsxs("div", { style: aiStyles.tooltipSection, children: [_jsx("div", { style: aiStyles.tooltipSubtitle, children: "Storage" }), _jsxs("div", { style: aiStyles.tooltipRow, children: [_jsx("span", { style: aiStyles.tooltipLabel, children: "Total:" }), lbIsLoadingStorage ? (_jsxs("div", { style: {
|
|
437
|
+
0, " ", "req/min"] })] })] }), _jsxs("div", { style: aiStyles.tooltipSection, children: [_jsx("div", { style: aiStyles.tooltipSubtitle, children: "Wallet" }), _jsxs("div", { style: aiStyles.tooltipRow, children: [_jsx("span", { style: aiStyles.tooltipLabel, children: "Total:" }), _jsxs("span", { style: aiStyles.tooltipValue, children: ["$", formatFixed(balanceUsed, 6), " / $", formatNumber(balanceTotal)] }), renderUsageCircle(balancePercentage)] })] }), _jsxs("div", { style: aiStyles.tooltipSection, children: [_jsx("div", { style: aiStyles.tooltipSubtitle, children: "Storage" }), _jsxs("div", { style: aiStyles.tooltipRow, children: [_jsx("span", { style: aiStyles.tooltipLabel, children: "Total:" }), lbIsLoadingStorage ? (_jsxs("div", { style: {
|
|
438
|
+
display: "flex",
|
|
439
|
+
alignItems: "center",
|
|
440
|
+
gap: "8px",
|
|
441
|
+
}, children: [_jsx("div", { style: {
|
|
438
442
|
height: "16px",
|
|
439
443
|
width: "120px",
|
|
440
444
|
background: "rgba(139, 92, 246, 0.1)",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LBAuthProvider.d.ts","sourceRoot":"","sources":["../../src/context/LBAuthProvider.tsx"],"names":[],"mappings":"AAEA;;;GAGG;AAEH,OAAO,EAML,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EACV,WAAW,EACX,QAAQ,EAIR,QAAQ,EACT,MAAM,uBAAuB,CAAC;AAE/B,UAAU,eAAe;IACvB,QAAQ,EAAE,SAAS,CAAC;IACpB,4DAA4D;IAC5D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uCAAuC;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mDAAmD;IACnD,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC;IACzD,sEAAsE;IACtE,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;CAC3B;AAED,UAAU,cAAe,SAAQ,WAAW;IAC1C,4BAA4B;IAC5B,KAAK,EAAE,CACL,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,KACb,OAAO,CAAC;QACX,OAAO,EAAE,OAAO,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,iBAAiB,CAAC,EAAE,OAAO,CAAC;QAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC,CAAC;IACH,8BAA8B;IAC9B,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,6CAA6C;IAC7C,YAAY,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC3D,gEAAgE;IAChE,YAAY,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvE,mDAAmD;IACnD,qBAAqB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3D,iEAAiE;IACjE,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD,oCAAoC;IACpC,cAAc,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,2BAA2B;IAC3B,OAAO,EAAE,QAAQ,EAAE,CAAC;IACpB,4CAA4C;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kDAAkD;IAClD,SAAS,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC3B,mEAAmE;IACnE,WAAW,EAAE,GAAG,CAAC;IACjB,uCAAuC;IACvC,aAAa,EAAE,GAAG,CAAC;IACnB,gDAAgD;IAChD,kBAAkB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,iEAAiE;IACjE,oBAAoB,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,kEAAkE;IAClE,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,8DAA8D;IAC9D,eAAe,EAAE,OAAO,CAAC;IACzB,uDAAuD;IACvD,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAID,wBAAgB,UAAU,CAAC,EACzB,QAAQ,EACR,OAAO,EAAE,QAA2B,EACpC,QAA2B,EAC3B,cAAc,EACd,YAAY,GACb,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"LBAuthProvider.d.ts","sourceRoot":"","sources":["../../src/context/LBAuthProvider.tsx"],"names":[],"mappings":"AAEA;;;GAGG;AAEH,OAAO,EAML,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EACV,WAAW,EACX,QAAQ,EAIR,QAAQ,EACT,MAAM,uBAAuB,CAAC;AAE/B,UAAU,eAAe;IACvB,QAAQ,EAAE,SAAS,CAAC;IACpB,4DAA4D;IAC5D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uCAAuC;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mDAAmD;IACnD,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC;IACzD,sEAAsE;IACtE,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;CAC3B;AAED,UAAU,cAAe,SAAQ,WAAW;IAC1C,4BAA4B;IAC5B,KAAK,EAAE,CACL,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,KACb,OAAO,CAAC;QACX,OAAO,EAAE,OAAO,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,iBAAiB,CAAC,EAAE,OAAO,CAAC;QAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC,CAAC;IACH,8BAA8B;IAC9B,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,6CAA6C;IAC7C,YAAY,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC3D,gEAAgE;IAChE,YAAY,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvE,mDAAmD;IACnD,qBAAqB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3D,iEAAiE;IACjE,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD,oCAAoC;IACpC,cAAc,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,2BAA2B;IAC3B,OAAO,EAAE,QAAQ,EAAE,CAAC;IACpB,4CAA4C;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kDAAkD;IAClD,SAAS,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC3B,mEAAmE;IACnE,WAAW,EAAE,GAAG,CAAC;IACjB,uCAAuC;IACvC,aAAa,EAAE,GAAG,CAAC;IACnB,gDAAgD;IAChD,kBAAkB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,iEAAiE;IACjE,oBAAoB,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,kEAAkE;IAClE,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,8DAA8D;IAC9D,eAAe,EAAE,OAAO,CAAC;IACzB,uDAAuD;IACvD,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAID,wBAAgB,UAAU,CAAC,EACzB,QAAQ,EACR,OAAO,EAAE,QAA2B,EACpC,QAA2B,EAC3B,cAAc,EACd,YAAY,GACb,EAAE,eAAe,2CAskBjB;AAED;;GAEG;AACH,wBAAgB,KAAK,IAAI,cAAc,CAMtC"}
|
|
@@ -307,32 +307,48 @@ export function LBProvider({ children, baseUrl: _baseUrl = "/api/lastbrain", pro
|
|
|
307
307
|
// Cache de 5 minutes sauf si force=true
|
|
308
308
|
const now = Date.now();
|
|
309
309
|
const CACHE_DURATION = 5 * 60 * 1000; // 5 minutes
|
|
310
|
-
if (!force &&
|
|
310
|
+
if (!force &&
|
|
311
|
+
storageLastFetch &&
|
|
312
|
+
now - storageLastFetch < CACHE_DURATION) {
|
|
311
313
|
console.log("[LBProvider] Storage cache still valid, skipping fetch");
|
|
312
314
|
return;
|
|
313
315
|
}
|
|
314
316
|
setIsLoadingStorage(true);
|
|
315
317
|
try {
|
|
316
|
-
|
|
318
|
+
// Essayer l'endpoint spécialisé storage d'abord
|
|
319
|
+
let response = await fetch(`${proxyUrl}/auth/status/storage`, {
|
|
317
320
|
credentials: "include",
|
|
318
321
|
});
|
|
322
|
+
// Si 404, faire un fallback vers l'endpoint normal (backward compatibility)
|
|
323
|
+
if (!response.ok && response.status === 404) {
|
|
324
|
+
console.log("[LBProvider] Storage endpoint not available, using fallback");
|
|
325
|
+
response = await fetch(`${proxyUrl}/auth/status`, {
|
|
326
|
+
credentials: "include",
|
|
327
|
+
});
|
|
328
|
+
}
|
|
319
329
|
if (response.ok) {
|
|
320
330
|
const data = await response.json();
|
|
321
|
-
|
|
331
|
+
// Si c'est la réponse complète (fallback), extraire juste le storage
|
|
332
|
+
const storageData = data.storage ? { storage: data.storage } : data;
|
|
333
|
+
setStorageStatus(storageData);
|
|
322
334
|
setStorageLastFetch(now);
|
|
323
335
|
// Combiner avec le basic status
|
|
324
336
|
const combinedStatus = {
|
|
325
337
|
...basicStatus,
|
|
326
|
-
storage:
|
|
338
|
+
storage: storageData.storage,
|
|
327
339
|
};
|
|
328
340
|
setApiStatus(combinedStatus);
|
|
329
341
|
}
|
|
330
342
|
else {
|
|
331
343
|
console.warn("[LBProvider] Failed to fetch storage status:", response.status);
|
|
344
|
+
// Arrêter les tentatives répétées si échec persistant
|
|
345
|
+
setStorageLastFetch(now); // Marquer comme essayé pour éviter la boucle
|
|
332
346
|
}
|
|
333
347
|
}
|
|
334
348
|
catch (error) {
|
|
335
349
|
console.error("[LBProvider] Failed to fetch storage status:", error);
|
|
350
|
+
// Arrêter les tentatives répétées si erreur persistante
|
|
351
|
+
setStorageLastFetch(now); // Marquer comme essayé pour éviter la boucle
|
|
336
352
|
}
|
|
337
353
|
finally {
|
|
338
354
|
setIsLoadingStorage(false);
|
|
@@ -375,7 +391,14 @@ export function LBProvider({ children, baseUrl: _baseUrl = "/api/lastbrain", pro
|
|
|
375
391
|
else {
|
|
376
392
|
throw new Error("No valid authentication method available");
|
|
377
393
|
}
|
|
378
|
-
}, [
|
|
394
|
+
}, [
|
|
395
|
+
state.status,
|
|
396
|
+
proxyUrl,
|
|
397
|
+
accessToken,
|
|
398
|
+
selectApiKey,
|
|
399
|
+
refreshBasicStatus,
|
|
400
|
+
refreshStorageStatus,
|
|
401
|
+
]);
|
|
379
402
|
/**
|
|
380
403
|
* Déconnexion
|
|
381
404
|
*/
|
|
@@ -446,7 +469,12 @@ export function LBProvider({ children, baseUrl: _baseUrl = "/api/lastbrain", pro
|
|
|
446
469
|
setStorageStatus(null);
|
|
447
470
|
setApiKeys([]);
|
|
448
471
|
}
|
|
449
|
-
}, [
|
|
472
|
+
}, [
|
|
473
|
+
state.status,
|
|
474
|
+
refreshBasicStatus,
|
|
475
|
+
refreshStorageStatus,
|
|
476
|
+
fetchApiKeysWithSession,
|
|
477
|
+
]);
|
|
450
478
|
const value = {
|
|
451
479
|
...state,
|
|
452
480
|
login,
|
package/package.json
CHANGED
|
@@ -70,7 +70,7 @@ export function AiStatusButton({
|
|
|
70
70
|
const effectiveStatus = status || {
|
|
71
71
|
...lbApiStatus,
|
|
72
72
|
...lbBasicStatus,
|
|
73
|
-
storage: lbStorageStatus?.storage
|
|
73
|
+
storage: lbStorageStatus?.storage,
|
|
74
74
|
};
|
|
75
75
|
|
|
76
76
|
// Récupérer refetchProviders depuis AiProvider si disponible
|
|
@@ -846,7 +846,13 @@ export function AiStatusButton({
|
|
|
846
846
|
<div style={aiStyles.tooltipRow}>
|
|
847
847
|
<span style={aiStyles.tooltipLabel}>Total:</span>
|
|
848
848
|
{lbIsLoadingStorage ? (
|
|
849
|
-
<div
|
|
849
|
+
<div
|
|
850
|
+
style={{
|
|
851
|
+
display: "flex",
|
|
852
|
+
alignItems: "center",
|
|
853
|
+
gap: "8px",
|
|
854
|
+
}}
|
|
855
|
+
>
|
|
850
856
|
<div
|
|
851
857
|
style={{
|
|
852
858
|
height: "16px",
|
|
@@ -425,7 +425,7 @@ export function LBProvider({
|
|
|
425
425
|
if (response.ok) {
|
|
426
426
|
const data = await response.json();
|
|
427
427
|
setBasicStatus(data);
|
|
428
|
-
|
|
428
|
+
|
|
429
429
|
// Combiner avec le storage existant si disponible
|
|
430
430
|
const combinedStatus = {
|
|
431
431
|
...data,
|
|
@@ -446,46 +446,73 @@ export function LBProvider({
|
|
|
446
446
|
/**
|
|
447
447
|
* Récupère le storage - LENT avec cache (5 minutes)
|
|
448
448
|
*/
|
|
449
|
-
const refreshStorageStatus = useCallback(
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
449
|
+
const refreshStorageStatus = useCallback(
|
|
450
|
+
async (force = false): Promise<void> => {
|
|
451
|
+
if (state.status !== "ready") {
|
|
452
|
+
setStorageStatus(null);
|
|
453
|
+
return;
|
|
454
|
+
}
|
|
454
455
|
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
456
|
+
// Cache de 5 minutes sauf si force=true
|
|
457
|
+
const now = Date.now();
|
|
458
|
+
const CACHE_DURATION = 5 * 60 * 1000; // 5 minutes
|
|
459
|
+
if (
|
|
460
|
+
!force &&
|
|
461
|
+
storageLastFetch &&
|
|
462
|
+
now - storageLastFetch < CACHE_DURATION
|
|
463
|
+
) {
|
|
464
|
+
console.log("[LBProvider] Storage cache still valid, skipping fetch");
|
|
465
|
+
return;
|
|
466
|
+
}
|
|
462
467
|
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
+
setIsLoadingStorage(true);
|
|
469
|
+
try {
|
|
470
|
+
// Essayer l'endpoint spécialisé storage d'abord
|
|
471
|
+
let response = await fetch(`${proxyUrl}/auth/status/storage`, {
|
|
472
|
+
credentials: "include",
|
|
473
|
+
});
|
|
468
474
|
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
475
|
+
// Si 404, faire un fallback vers l'endpoint normal (backward compatibility)
|
|
476
|
+
if (!response.ok && response.status === 404) {
|
|
477
|
+
console.log("[LBProvider] Storage endpoint not available, using fallback");
|
|
478
|
+
response = await fetch(`${proxyUrl}/auth/status`, {
|
|
479
|
+
credentials: "include",
|
|
480
|
+
});
|
|
481
|
+
}
|
|
482
|
+
|
|
483
|
+
if (response.ok) {
|
|
484
|
+
const data = await response.json();
|
|
485
|
+
|
|
486
|
+
// Si c'est la réponse complète (fallback), extraire juste le storage
|
|
487
|
+
const storageData = data.storage ? { storage: data.storage } : data;
|
|
488
|
+
|
|
489
|
+
setStorageStatus(storageData);
|
|
490
|
+
setStorageLastFetch(now);
|
|
491
|
+
|
|
492
|
+
// Combiner avec le basic status
|
|
493
|
+
const combinedStatus = {
|
|
494
|
+
...basicStatus,
|
|
495
|
+
storage: storageData.storage,
|
|
496
|
+
};
|
|
497
|
+
setApiStatus(combinedStatus);
|
|
498
|
+
} else {
|
|
499
|
+
console.warn(
|
|
500
|
+
"[LBProvider] Failed to fetch storage status:",
|
|
501
|
+
response.status
|
|
502
|
+
);
|
|
503
|
+
// Arrêter les tentatives répétées si échec persistant
|
|
504
|
+
setStorageLastFetch(now); // Marquer comme essayé pour éviter la boucle
|
|
505
|
+
}
|
|
506
|
+
} catch (error) {
|
|
507
|
+
console.error("[LBProvider] Failed to fetch storage status:", error);
|
|
508
|
+
// Arrêter les tentatives répétées si erreur persistante
|
|
509
|
+
setStorageLastFetch(now); // Marquer comme essayé pour éviter la boucle
|
|
510
|
+
} finally {
|
|
511
|
+
setIsLoadingStorage(false);
|
|
482
512
|
}
|
|
483
|
-
}
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
setIsLoadingStorage(false);
|
|
487
|
-
}
|
|
488
|
-
}, [proxyUrl, state.status, basicStatus, storageLastFetch]);
|
|
513
|
+
},
|
|
514
|
+
[proxyUrl, state.status, basicStatus, storageLastFetch]
|
|
515
|
+
);
|
|
489
516
|
|
|
490
517
|
/**
|
|
491
518
|
* Sélectionne une clé API avec le token déjà stocké (après login)
|
|
@@ -533,7 +560,14 @@ export function LBProvider({
|
|
|
533
560
|
throw new Error("No valid authentication method available");
|
|
534
561
|
}
|
|
535
562
|
},
|
|
536
|
-
[
|
|
563
|
+
[
|
|
564
|
+
state.status,
|
|
565
|
+
proxyUrl,
|
|
566
|
+
accessToken,
|
|
567
|
+
selectApiKey,
|
|
568
|
+
refreshBasicStatus,
|
|
569
|
+
refreshStorageStatus,
|
|
570
|
+
]
|
|
537
571
|
);
|
|
538
572
|
|
|
539
573
|
/**
|
|
@@ -606,7 +640,12 @@ export function LBProvider({
|
|
|
606
640
|
setStorageStatus(null);
|
|
607
641
|
setApiKeys([]);
|
|
608
642
|
}
|
|
609
|
-
}, [
|
|
643
|
+
}, [
|
|
644
|
+
state.status,
|
|
645
|
+
refreshBasicStatus,
|
|
646
|
+
refreshStorageStatus,
|
|
647
|
+
fetchApiKeysWithSession,
|
|
648
|
+
]);
|
|
610
649
|
|
|
611
650
|
const value: LBContextValue = {
|
|
612
651
|
...state,
|