@jmruthers/pace-core 0.5.44 → 0.5.46
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/{DataTable-GU72TTL6.js → DataTable-CBZ4FWLB.js} +5 -5
- package/dist/{chunk-KVMIO3BU.js → chunk-QGIMHNFE.js} +3 -3
- package/dist/{chunk-SFXM5VTP.js → chunk-RZZ4U2VB.js} +3 -3
- package/dist/{chunk-HEYEDETJ.js → chunk-TCPMEL3C.js} +2 -2
- package/dist/{chunk-DZSLRIE2.js → chunk-UK5BMO5B.js} +3 -3
- package/dist/{chunk-6CGBO4IS.js → chunk-VW4YRTVX.js} +66 -16
- package/dist/{chunk-6CGBO4IS.js.map → chunk-VW4YRTVX.js.map} +1 -1
- package/dist/{chunk-U7EDXJBG.js → chunk-WUCWNFHS.js} +5 -5
- package/dist/{chunk-OTQBUB66.js → chunk-YAACZXDE.js} +4 -4
- package/dist/{chunk-D4ZF5QUY.js → chunk-YJ7MYXN4.js} +2 -2
- package/dist/{chunk-7NAMQC3W.js → chunk-YOMT5BFG.js} +2 -2
- package/dist/{chunk-DWA6SCGM.js → chunk-ZK26ZQ3P.js} +3 -3
- package/dist/components.js +7 -7
- package/dist/hooks.js +4 -4
- package/dist/index.js +10 -10
- package/dist/providers.js +3 -3
- package/dist/rbac/index.js +5 -5
- package/dist/utils.js +1 -1
- package/docs/api/classes/ErrorBoundary.md +1 -1
- package/docs/api/classes/InvalidScopeError.md +1 -1
- package/docs/api/classes/MissingUserContextError.md +1 -1
- package/docs/api/classes/OrganisationContextRequiredError.md +1 -1
- package/docs/api/classes/PermissionDeniedError.md +1 -1
- package/docs/api/classes/PublicErrorBoundary.md +1 -1
- package/docs/api/classes/RBACAuditManager.md +1 -1
- package/docs/api/classes/RBACCache.md +1 -1
- package/docs/api/classes/RBACEngine.md +1 -1
- package/docs/api/classes/RBACError.md +1 -1
- package/docs/api/classes/RBACNotInitializedError.md +1 -1
- package/docs/api/classes/SecureSupabaseClient.md +1 -1
- package/docs/api/interfaces/AggregateConfig.md +1 -1
- package/docs/api/interfaces/ButtonProps.md +1 -1
- package/docs/api/interfaces/CardProps.md +1 -1
- package/docs/api/interfaces/ColorPalette.md +1 -1
- package/docs/api/interfaces/ColorShade.md +1 -1
- package/docs/api/interfaces/DataAccessRecord.md +1 -1
- package/docs/api/interfaces/DataTableAction.md +1 -1
- package/docs/api/interfaces/DataTableColumn.md +1 -1
- package/docs/api/interfaces/DataTableProps.md +1 -1
- package/docs/api/interfaces/DataTableToolbarButton.md +1 -1
- package/docs/api/interfaces/EmptyStateConfig.md +1 -1
- package/docs/api/interfaces/EnhancedNavigationMenuProps.md +1 -1
- package/docs/api/interfaces/EventContextType.md +1 -1
- package/docs/api/interfaces/EventLogoProps.md +1 -1
- package/docs/api/interfaces/EventProviderProps.md +1 -1
- package/docs/api/interfaces/FileSizeLimits.md +1 -1
- package/docs/api/interfaces/FileUploadProps.md +1 -1
- package/docs/api/interfaces/FooterProps.md +1 -1
- package/docs/api/interfaces/InactivityWarningModalProps.md +1 -1
- package/docs/api/interfaces/InputProps.md +1 -1
- package/docs/api/interfaces/LabelProps.md +1 -1
- package/docs/api/interfaces/LoginFormProps.md +1 -1
- package/docs/api/interfaces/NavigationAccessRecord.md +1 -1
- package/docs/api/interfaces/NavigationContextType.md +1 -1
- package/docs/api/interfaces/NavigationGuardProps.md +1 -1
- package/docs/api/interfaces/NavigationItem.md +1 -1
- package/docs/api/interfaces/NavigationMenuProps.md +1 -1
- package/docs/api/interfaces/NavigationProviderProps.md +1 -1
- package/docs/api/interfaces/Organisation.md +1 -1
- package/docs/api/interfaces/OrganisationContextType.md +1 -1
- package/docs/api/interfaces/OrganisationMembership.md +1 -1
- package/docs/api/interfaces/OrganisationProviderProps.md +1 -1
- package/docs/api/interfaces/OrganisationSecurityError.md +1 -1
- package/docs/api/interfaces/PaceAppLayoutProps.md +1 -1
- package/docs/api/interfaces/PaceLoginPageProps.md +1 -1
- package/docs/api/interfaces/PageAccessRecord.md +1 -1
- package/docs/api/interfaces/PagePermissionContextType.md +1 -1
- package/docs/api/interfaces/PagePermissionGuardProps.md +1 -1
- package/docs/api/interfaces/PagePermissionProviderProps.md +1 -1
- package/docs/api/interfaces/PaletteData.md +1 -1
- package/docs/api/interfaces/PermissionEnforcerProps.md +1 -1
- package/docs/api/interfaces/PublicErrorBoundaryProps.md +1 -1
- package/docs/api/interfaces/PublicErrorBoundaryState.md +1 -1
- package/docs/api/interfaces/PublicLoadingSpinnerProps.md +1 -1
- package/docs/api/interfaces/PublicPageFooterProps.md +1 -1
- package/docs/api/interfaces/PublicPageHeaderProps.md +1 -1
- package/docs/api/interfaces/PublicPageLayoutProps.md +1 -1
- package/docs/api/interfaces/RBACConfig.md +1 -1
- package/docs/api/interfaces/RBACContextType.md +1 -1
- package/docs/api/interfaces/RBACLogger.md +1 -1
- package/docs/api/interfaces/RBACProviderProps.md +1 -1
- package/docs/api/interfaces/RoleBasedRouterContextType.md +1 -1
- package/docs/api/interfaces/RoleBasedRouterProps.md +1 -1
- package/docs/api/interfaces/RouteAccessRecord.md +1 -1
- package/docs/api/interfaces/RouteConfig.md +1 -1
- package/docs/api/interfaces/SecureDataContextType.md +1 -1
- package/docs/api/interfaces/SecureDataProviderProps.md +1 -1
- package/docs/api/interfaces/StorageConfig.md +1 -1
- package/docs/api/interfaces/StorageFileInfo.md +1 -1
- package/docs/api/interfaces/StorageFileMetadata.md +1 -1
- package/docs/api/interfaces/StorageListOptions.md +1 -1
- package/docs/api/interfaces/StorageListResult.md +1 -1
- package/docs/api/interfaces/StorageUploadOptions.md +1 -1
- package/docs/api/interfaces/StorageUploadResult.md +1 -1
- package/docs/api/interfaces/StorageUrlOptions.md +1 -1
- package/docs/api/interfaces/StyleImport.md +1 -1
- package/docs/api/interfaces/ToastActionElement.md +1 -1
- package/docs/api/interfaces/ToastProps.md +1 -1
- package/docs/api/interfaces/UnifiedAuthContextType.md +1 -1
- package/docs/api/interfaces/UnifiedAuthProviderProps.md +1 -1
- package/docs/api/interfaces/UseInactivityTrackerOptions.md +1 -1
- package/docs/api/interfaces/UseInactivityTrackerReturn.md +1 -1
- package/docs/api/interfaces/UsePublicEventLogoOptions.md +1 -1
- package/docs/api/interfaces/UsePublicEventLogoReturn.md +1 -1
- package/docs/api/interfaces/UsePublicEventOptions.md +1 -1
- package/docs/api/interfaces/UsePublicEventReturn.md +1 -1
- package/docs/api/interfaces/UsePublicRouteParamsReturn.md +1 -1
- package/docs/api/interfaces/UserEventAccess.md +1 -1
- package/docs/api/interfaces/UserMenuProps.md +1 -1
- package/docs/api/interfaces/UserProfile.md +1 -1
- package/docs/api/modules.md +3 -3
- package/package.json +1 -1
- package/src/providers/OrganisationProvider.tsx +82 -16
- /package/dist/{DataTable-GU72TTL6.js.map → DataTable-CBZ4FWLB.js.map} +0 -0
- /package/dist/{chunk-KVMIO3BU.js.map → chunk-QGIMHNFE.js.map} +0 -0
- /package/dist/{chunk-SFXM5VTP.js.map → chunk-RZZ4U2VB.js.map} +0 -0
- /package/dist/{chunk-HEYEDETJ.js.map → chunk-TCPMEL3C.js.map} +0 -0
- /package/dist/{chunk-DZSLRIE2.js.map → chunk-UK5BMO5B.js.map} +0 -0
- /package/dist/{chunk-U7EDXJBG.js.map → chunk-WUCWNFHS.js.map} +0 -0
- /package/dist/{chunk-OTQBUB66.js.map → chunk-YAACZXDE.js.map} +0 -0
- /package/dist/{chunk-D4ZF5QUY.js.map → chunk-YJ7MYXN4.js.map} +0 -0
- /package/dist/{chunk-7NAMQC3W.js.map → chunk-YOMT5BFG.js.map} +0 -0
- /package/dist/{chunk-DWA6SCGM.js.map → chunk-ZK26ZQ3P.js.map} +0 -0
|
@@ -32,11 +32,11 @@ import {
|
|
|
32
32
|
useDataTableContext,
|
|
33
33
|
usePluginRegistry,
|
|
34
34
|
useStateManager
|
|
35
|
-
} from "./chunk-
|
|
36
|
-
import "./chunk-
|
|
35
|
+
} from "./chunk-QGIMHNFE.js";
|
|
36
|
+
import "./chunk-UK5BMO5B.js";
|
|
37
37
|
import "./chunk-GWSBHC4J.js";
|
|
38
38
|
import "./chunk-7BNPOCLL.js";
|
|
39
|
-
import "./chunk-
|
|
39
|
+
import "./chunk-TCPMEL3C.js";
|
|
40
40
|
import {
|
|
41
41
|
DataChunkManager,
|
|
42
42
|
SearchIndex,
|
|
@@ -48,7 +48,7 @@ import {
|
|
|
48
48
|
throttle,
|
|
49
49
|
useDataTablePerformance
|
|
50
50
|
} from "./chunk-SS3E6QLB.js";
|
|
51
|
-
import "./chunk-
|
|
51
|
+
import "./chunk-VW4YRTVX.js";
|
|
52
52
|
import "./chunk-YDJW5XTN.js";
|
|
53
53
|
import "./chunk-MZBUOP4P.js";
|
|
54
54
|
import "./chunk-WJARTBCT.js";
|
|
@@ -97,4 +97,4 @@ export {
|
|
|
97
97
|
usePluginRegistry,
|
|
98
98
|
useStateManager
|
|
99
99
|
};
|
|
100
|
-
//# sourceMappingURL=DataTable-
|
|
100
|
+
//# sourceMappingURL=DataTable-CBZ4FWLB.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
useCan
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-UK5BMO5B.js";
|
|
4
4
|
import {
|
|
5
5
|
useDataTablePerformance
|
|
6
6
|
} from "./chunk-SS3E6QLB.js";
|
|
@@ -14,7 +14,7 @@ import {
|
|
|
14
14
|
init_Button,
|
|
15
15
|
init_UnifiedAuthProvider,
|
|
16
16
|
useUnifiedAuth
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-VW4YRTVX.js";
|
|
18
18
|
import {
|
|
19
19
|
getCurrentAppName,
|
|
20
20
|
init_appNameResolver
|
|
@@ -5584,4 +5584,4 @@ export {
|
|
|
5584
5584
|
GroupHeader,
|
|
5585
5585
|
EditableRow
|
|
5586
5586
|
};
|
|
5587
|
-
//# sourceMappingURL=chunk-
|
|
5587
|
+
//# sourceMappingURL=chunk-QGIMHNFE.js.map
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
init_EventProvider
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-TCPMEL3C.js";
|
|
4
4
|
import {
|
|
5
5
|
init_AuthProvider,
|
|
6
6
|
init_InactivityProvider,
|
|
7
7
|
init_OrganisationProvider,
|
|
8
8
|
init_UnifiedAuthProvider
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-VW4YRTVX.js";
|
|
10
10
|
|
|
11
11
|
// src/providers/index.ts
|
|
12
12
|
init_EventProvider();
|
|
@@ -14,4 +14,4 @@ init_OrganisationProvider();
|
|
|
14
14
|
init_UnifiedAuthProvider();
|
|
15
15
|
init_AuthProvider();
|
|
16
16
|
init_InactivityProvider();
|
|
17
|
-
//# sourceMappingURL=chunk-
|
|
17
|
+
//# sourceMappingURL=chunk-RZZ4U2VB.js.map
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
init_UnifiedAuthProvider,
|
|
4
4
|
useOrganisations,
|
|
5
5
|
useUnifiedAuth
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-VW4YRTVX.js";
|
|
7
7
|
import {
|
|
8
8
|
DebugLogger,
|
|
9
9
|
init_debugLogger,
|
|
@@ -261,4 +261,4 @@ export {
|
|
|
261
261
|
EventProvider_exports,
|
|
262
262
|
init_EventProvider
|
|
263
263
|
};
|
|
264
|
-
//# sourceMappingURL=chunk-
|
|
264
|
+
//# sourceMappingURL=chunk-TCPMEL3C.js.map
|
|
@@ -7,13 +7,13 @@ import {
|
|
|
7
7
|
import {
|
|
8
8
|
init_EventProvider,
|
|
9
9
|
useEvents
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-TCPMEL3C.js";
|
|
11
11
|
import {
|
|
12
12
|
init_OrganisationProvider,
|
|
13
13
|
init_UnifiedAuthProvider,
|
|
14
14
|
useOrganisations,
|
|
15
15
|
useUnifiedAuth
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-VW4YRTVX.js";
|
|
17
17
|
|
|
18
18
|
// src/rbac/hooks/useRBAC.ts
|
|
19
19
|
init_UnifiedAuthProvider();
|
|
@@ -506,4 +506,4 @@ export {
|
|
|
506
506
|
useHasAllPermissions,
|
|
507
507
|
useCachedPermissions
|
|
508
508
|
};
|
|
509
|
-
//# sourceMappingURL=chunk-
|
|
509
|
+
//# sourceMappingURL=chunk-UK5BMO5B.js.map
|
|
@@ -7300,6 +7300,7 @@ function OrganisationProvider({ children }) {
|
|
|
7300
7300
|
const [isLoading, setIsLoading] = useState7(true);
|
|
7301
7301
|
const [error, setError] = useState7(null);
|
|
7302
7302
|
const [isContextReady, setIsContextReady] = useState7(false);
|
|
7303
|
+
const [retryCount, setRetryCount] = useState7(0);
|
|
7303
7304
|
const { user, session, supabase, signOut } = useUnifiedAuth();
|
|
7304
7305
|
let navigate = null;
|
|
7305
7306
|
try {
|
|
@@ -7307,6 +7308,17 @@ function OrganisationProvider({ children }) {
|
|
|
7307
7308
|
} catch (error2) {
|
|
7308
7309
|
navigate = null;
|
|
7309
7310
|
}
|
|
7311
|
+
const clearAllCachedData = useCallback7(() => {
|
|
7312
|
+
localStorage.removeItem(STORAGE_KEYS2.SELECTED_ORGANISATION);
|
|
7313
|
+
localStorage.removeItem(STORAGE_KEYS2.ORGANISATION_CONTEXT);
|
|
7314
|
+
setSelectedOrganisation(null);
|
|
7315
|
+
setOrganisations([]);
|
|
7316
|
+
setUserMemberships([]);
|
|
7317
|
+
setRoleMapState(/* @__PURE__ */ new Map());
|
|
7318
|
+
setError(null);
|
|
7319
|
+
setRetryCount(0);
|
|
7320
|
+
setIsContextReady(false);
|
|
7321
|
+
}, []);
|
|
7310
7322
|
const setDatabaseOrganisationContext = useCallback7(async (organisation) => {
|
|
7311
7323
|
if (!supabase || !session) {
|
|
7312
7324
|
console.warn("[OrganisationProvider] No Supabase client or session available for setting organisation context");
|
|
@@ -7379,18 +7391,39 @@ function OrganisationProvider({ children }) {
|
|
|
7379
7391
|
if (!memberships || memberships.length === 0) {
|
|
7380
7392
|
throw new Error("User has no active organisation memberships");
|
|
7381
7393
|
}
|
|
7394
|
+
memberships.forEach((membership, index) => {
|
|
7395
|
+
if (!membership.organisation_id || membership.organisation_id.trim() === "") {
|
|
7396
|
+
console.warn(`[OrganisationProvider] Membership ${index} has invalid organisation_id:`, membership);
|
|
7397
|
+
}
|
|
7398
|
+
});
|
|
7382
7399
|
const organisationIds = memberships.map((m) => m.organisation_id).filter((id) => {
|
|
7383
|
-
if (!id || typeof id !== "string")
|
|
7400
|
+
if (!id || typeof id !== "string") {
|
|
7401
|
+
console.warn("[OrganisationProvider] Invalid organisation ID (not string):", id);
|
|
7402
|
+
return false;
|
|
7403
|
+
}
|
|
7384
7404
|
const trimmedId = id.trim();
|
|
7385
|
-
if (trimmedId === "")
|
|
7386
|
-
|
|
7405
|
+
if (trimmedId === "") {
|
|
7406
|
+
console.warn("[OrganisationProvider] Empty organisation ID found");
|
|
7407
|
+
return false;
|
|
7408
|
+
}
|
|
7409
|
+
const isValidUuid = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(trimmedId);
|
|
7410
|
+
if (!isValidUuid) {
|
|
7411
|
+
console.warn("[OrganisationProvider] Invalid UUID format:", trimmedId);
|
|
7412
|
+
}
|
|
7413
|
+
return isValidUuid;
|
|
7387
7414
|
});
|
|
7388
7415
|
if (organisationIds.length === 0) {
|
|
7389
7416
|
console.warn("[OrganisationProvider] No valid organisation IDs found in memberships:", memberships);
|
|
7390
7417
|
throw new Error("No valid organisation IDs found in memberships");
|
|
7391
7418
|
}
|
|
7392
7419
|
DebugLogger.log("OrganisationProvider", "Valid organisation IDs:", organisationIds);
|
|
7393
|
-
const
|
|
7420
|
+
const cleanOrganisationIds = organisationIds.filter((id) => id && id.trim() !== "");
|
|
7421
|
+
if (cleanOrganisationIds.length === 0) {
|
|
7422
|
+
console.warn("[OrganisationProvider] No clean organisation IDs after filtering:", organisationIds);
|
|
7423
|
+
throw new Error("No valid organisation IDs found after cleaning");
|
|
7424
|
+
}
|
|
7425
|
+
DebugLogger.log("OrganisationProvider", "Clean organisation IDs for query:", cleanOrganisationIds);
|
|
7426
|
+
const { data: organisations2, error: orgError } = await supabase.from("organisations").select("id, name, display_name, subscription_tier, settings, is_active, parent_id, created_at, updated_at").in("id", cleanOrganisationIds);
|
|
7394
7427
|
if (orgError) {
|
|
7395
7428
|
console.error("[OrganisationProvider] Error loading organisations:", orgError);
|
|
7396
7429
|
throw orgError;
|
|
@@ -7413,14 +7446,23 @@ function OrganisationProvider({ children }) {
|
|
|
7413
7446
|
const persistedOrgString = localStorage.getItem(STORAGE_KEYS2.SELECTED_ORGANISATION);
|
|
7414
7447
|
if (persistedOrgString) {
|
|
7415
7448
|
const persistedOrg = JSON.parse(persistedOrgString);
|
|
7416
|
-
|
|
7417
|
-
|
|
7418
|
-
|
|
7419
|
-
|
|
7449
|
+
if (persistedOrg.id && typeof persistedOrg.id === "string" && persistedOrg.id.trim() !== "") {
|
|
7450
|
+
const validPersistedOrg = activeOrgs.find((org) => org.id === persistedOrg.id);
|
|
7451
|
+
if (validPersistedOrg) {
|
|
7452
|
+
initialOrg = validPersistedOrg;
|
|
7453
|
+
DebugLogger.log("OrganisationProvider", "Restored persisted organisation:", initialOrg.display_name);
|
|
7454
|
+
} else {
|
|
7455
|
+
console.warn("[OrganisationProvider] Persisted organisation not found in active orgs, clearing cache");
|
|
7456
|
+
localStorage.removeItem(STORAGE_KEYS2.SELECTED_ORGANISATION);
|
|
7457
|
+
}
|
|
7458
|
+
} else {
|
|
7459
|
+
console.warn("[OrganisationProvider] Invalid persisted organisation ID, clearing cache");
|
|
7460
|
+
localStorage.removeItem(STORAGE_KEYS2.SELECTED_ORGANISATION);
|
|
7420
7461
|
}
|
|
7421
7462
|
}
|
|
7422
7463
|
} catch (storageError) {
|
|
7423
7464
|
console.warn("[OrganisationProvider] Failed to restore persisted organisation:", storageError);
|
|
7465
|
+
localStorage.removeItem(STORAGE_KEYS2.SELECTED_ORGANISATION);
|
|
7424
7466
|
}
|
|
7425
7467
|
if (!initialOrg) {
|
|
7426
7468
|
const adminMembership = memberships.find((m) => m.role === "org_admin");
|
|
@@ -7446,20 +7488,25 @@ function OrganisationProvider({ children }) {
|
|
|
7446
7488
|
totalOrganisations: activeOrgs.length,
|
|
7447
7489
|
userRole: roleMap.get(initialOrg.id)
|
|
7448
7490
|
});
|
|
7491
|
+
setRetryCount(0);
|
|
7449
7492
|
} catch (err) {
|
|
7450
7493
|
console.error("[OrganisationProvider] Failed to load organisations:", err);
|
|
7451
7494
|
setError(err);
|
|
7452
|
-
|
|
7453
|
-
|
|
7454
|
-
setUserMemberships([]);
|
|
7455
|
-
localStorage.removeItem(STORAGE_KEYS2.SELECTED_ORGANISATION);
|
|
7495
|
+
setRetryCount((prev) => prev + 1);
|
|
7496
|
+
clearAllCachedData();
|
|
7456
7497
|
} finally {
|
|
7457
7498
|
setIsLoading(false);
|
|
7458
7499
|
}
|
|
7459
|
-
}, [user, session, supabase]);
|
|
7500
|
+
}, [user, session, supabase, clearAllCachedData]);
|
|
7460
7501
|
useEffect7(() => {
|
|
7461
7502
|
if (user && session && supabase && !isLoading) {
|
|
7462
|
-
|
|
7503
|
+
if (retryCount >= 3) {
|
|
7504
|
+
console.error("[OrganisationProvider] Max retry count reached, stopping organisation loading");
|
|
7505
|
+
setError(new Error("Failed to load organisations after multiple attempts"));
|
|
7506
|
+
setIsLoading(false);
|
|
7507
|
+
return;
|
|
7508
|
+
}
|
|
7509
|
+
DebugLogger.log("OrganisationProvider", "Authentication stable, loading organizations... (retry:", retryCount, ")");
|
|
7463
7510
|
loadUserOrganisations();
|
|
7464
7511
|
} else if (!user && !session) {
|
|
7465
7512
|
DebugLogger.log("OrganisationProvider", "No authentication, clearing organization state");
|
|
@@ -7469,8 +7516,11 @@ function OrganisationProvider({ children }) {
|
|
|
7469
7516
|
setRoleMapState(/* @__PURE__ */ new Map());
|
|
7470
7517
|
setIsLoading(false);
|
|
7471
7518
|
setError(null);
|
|
7519
|
+
setRetryCount(0);
|
|
7520
|
+
localStorage.removeItem(STORAGE_KEYS2.SELECTED_ORGANISATION);
|
|
7521
|
+
localStorage.removeItem(STORAGE_KEYS2.ORGANISATION_CONTEXT);
|
|
7472
7522
|
}
|
|
7473
|
-
}, [user, session, supabase, isLoading, loadUserOrganisations]);
|
|
7523
|
+
}, [user, session, supabase, isLoading, loadUserOrganisations, retryCount]);
|
|
7474
7524
|
const handleLogoutAndRedirect = useCallback7(async () => {
|
|
7475
7525
|
try {
|
|
7476
7526
|
await signOut();
|
|
@@ -7719,4 +7769,4 @@ lodash/lodash.js:
|
|
|
7719
7769
|
* Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
|
|
7720
7770
|
*)
|
|
7721
7771
|
*/
|
|
7722
|
-
//# sourceMappingURL=chunk-
|
|
7772
|
+
//# sourceMappingURL=chunk-VW4YRTVX.js.map
|