@jmruthers/pace-core 0.5.150 → 0.5.154

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.
Files changed (124) hide show
  1. package/dist/{chunk-NRDKCKSX.js → chunk-UM4TRLQG.js} +70 -5
  2. package/dist/chunk-UM4TRLQG.js.map +1 -0
  3. package/dist/components.js +1 -1
  4. package/dist/index.js +1 -1
  5. package/docs/api/classes/ColumnFactory.md +1 -1
  6. package/docs/api/classes/ErrorBoundary.md +1 -1
  7. package/docs/api/classes/InvalidScopeError.md +1 -1
  8. package/docs/api/classes/MissingUserContextError.md +1 -1
  9. package/docs/api/classes/OrganisationContextRequiredError.md +1 -1
  10. package/docs/api/classes/PermissionDeniedError.md +1 -1
  11. package/docs/api/classes/PublicErrorBoundary.md +1 -1
  12. package/docs/api/classes/RBACAuditManager.md +1 -1
  13. package/docs/api/classes/RBACCache.md +1 -1
  14. package/docs/api/classes/RBACEngine.md +1 -1
  15. package/docs/api/classes/RBACError.md +1 -1
  16. package/docs/api/classes/RBACNotInitializedError.md +1 -1
  17. package/docs/api/classes/SecureSupabaseClient.md +1 -1
  18. package/docs/api/classes/StorageUtils.md +1 -1
  19. package/docs/api/enums/FileCategory.md +1 -1
  20. package/docs/api/interfaces/AggregateConfig.md +1 -1
  21. package/docs/api/interfaces/BadgeProps.md +1 -1
  22. package/docs/api/interfaces/ButtonProps.md +1 -1
  23. package/docs/api/interfaces/CalendarProps.md +1 -1
  24. package/docs/api/interfaces/CardProps.md +1 -1
  25. package/docs/api/interfaces/ColorPalette.md +1 -1
  26. package/docs/api/interfaces/ColorShade.md +1 -1
  27. package/docs/api/interfaces/DataAccessRecord.md +1 -1
  28. package/docs/api/interfaces/DataRecord.md +1 -1
  29. package/docs/api/interfaces/DataTableAction.md +1 -1
  30. package/docs/api/interfaces/DataTableColumn.md +1 -1
  31. package/docs/api/interfaces/DataTableProps.md +1 -1
  32. package/docs/api/interfaces/DataTableToolbarButton.md +1 -1
  33. package/docs/api/interfaces/EmptyStateConfig.md +1 -1
  34. package/docs/api/interfaces/EnhancedNavigationMenuProps.md +1 -1
  35. package/docs/api/interfaces/EventAppRoleData.md +1 -1
  36. package/docs/api/interfaces/EventLogoProps.md +1 -1
  37. package/docs/api/interfaces/ExportColumn.md +1 -1
  38. package/docs/api/interfaces/ExportOptions.md +1 -1
  39. package/docs/api/interfaces/FileDisplayProps.md +1 -1
  40. package/docs/api/interfaces/FileMetadata.md +1 -1
  41. package/docs/api/interfaces/FileReference.md +1 -1
  42. package/docs/api/interfaces/FileSizeLimits.md +1 -1
  43. package/docs/api/interfaces/FileUploadOptions.md +1 -1
  44. package/docs/api/interfaces/FileUploadProps.md +1 -1
  45. package/docs/api/interfaces/FooterProps.md +1 -1
  46. package/docs/api/interfaces/GrantEventAppRoleParams.md +1 -1
  47. package/docs/api/interfaces/InactivityWarningModalProps.md +1 -1
  48. package/docs/api/interfaces/InputProps.md +1 -1
  49. package/docs/api/interfaces/LabelProps.md +1 -1
  50. package/docs/api/interfaces/LoginFormProps.md +1 -1
  51. package/docs/api/interfaces/NavigationAccessRecord.md +1 -1
  52. package/docs/api/interfaces/NavigationContextType.md +1 -1
  53. package/docs/api/interfaces/NavigationGuardProps.md +1 -1
  54. package/docs/api/interfaces/NavigationItem.md +1 -1
  55. package/docs/api/interfaces/NavigationMenuProps.md +1 -1
  56. package/docs/api/interfaces/NavigationProviderProps.md +1 -1
  57. package/docs/api/interfaces/Organisation.md +1 -1
  58. package/docs/api/interfaces/OrganisationContextType.md +1 -1
  59. package/docs/api/interfaces/OrganisationMembership.md +1 -1
  60. package/docs/api/interfaces/OrganisationProviderProps.md +1 -1
  61. package/docs/api/interfaces/OrganisationSecurityError.md +1 -1
  62. package/docs/api/interfaces/PaceAppLayoutProps.md +1 -1
  63. package/docs/api/interfaces/PaceLoginPageProps.md +1 -1
  64. package/docs/api/interfaces/PageAccessRecord.md +1 -1
  65. package/docs/api/interfaces/PagePermissionContextType.md +1 -1
  66. package/docs/api/interfaces/PagePermissionGuardProps.md +1 -1
  67. package/docs/api/interfaces/PagePermissionProviderProps.md +1 -1
  68. package/docs/api/interfaces/PaletteData.md +1 -1
  69. package/docs/api/interfaces/PermissionEnforcerProps.md +1 -1
  70. package/docs/api/interfaces/ProtectedRouteProps.md +1 -1
  71. package/docs/api/interfaces/PublicErrorBoundaryProps.md +1 -1
  72. package/docs/api/interfaces/PublicErrorBoundaryState.md +1 -1
  73. package/docs/api/interfaces/PublicLoadingSpinnerProps.md +1 -1
  74. package/docs/api/interfaces/PublicPageFooterProps.md +1 -1
  75. package/docs/api/interfaces/PublicPageHeaderProps.md +1 -1
  76. package/docs/api/interfaces/PublicPageLayoutProps.md +1 -1
  77. package/docs/api/interfaces/RBACConfig.md +1 -1
  78. package/docs/api/interfaces/RBACLogger.md +1 -1
  79. package/docs/api/interfaces/ResourcePermissions.md +1 -1
  80. package/docs/api/interfaces/RevokeEventAppRoleParams.md +1 -1
  81. package/docs/api/interfaces/RoleBasedRouterContextType.md +1 -1
  82. package/docs/api/interfaces/RoleBasedRouterProps.md +1 -1
  83. package/docs/api/interfaces/RoleManagementResult.md +1 -1
  84. package/docs/api/interfaces/RouteAccessRecord.md +1 -1
  85. package/docs/api/interfaces/RouteConfig.md +1 -1
  86. package/docs/api/interfaces/SecureDataContextType.md +1 -1
  87. package/docs/api/interfaces/SecureDataProviderProps.md +1 -1
  88. package/docs/api/interfaces/SessionRestorationLoaderProps.md +1 -1
  89. package/docs/api/interfaces/StorageConfig.md +1 -1
  90. package/docs/api/interfaces/StorageFileInfo.md +1 -1
  91. package/docs/api/interfaces/StorageFileMetadata.md +1 -1
  92. package/docs/api/interfaces/StorageListOptions.md +1 -1
  93. package/docs/api/interfaces/StorageListResult.md +1 -1
  94. package/docs/api/interfaces/StorageUploadOptions.md +1 -1
  95. package/docs/api/interfaces/StorageUploadResult.md +1 -1
  96. package/docs/api/interfaces/StorageUrlOptions.md +1 -1
  97. package/docs/api/interfaces/StyleImport.md +1 -1
  98. package/docs/api/interfaces/SwitchProps.md +1 -1
  99. package/docs/api/interfaces/TabsContentProps.md +1 -1
  100. package/docs/api/interfaces/TabsListProps.md +1 -1
  101. package/docs/api/interfaces/TabsProps.md +1 -1
  102. package/docs/api/interfaces/TabsTriggerProps.md +1 -1
  103. package/docs/api/interfaces/TextareaProps.md +1 -1
  104. package/docs/api/interfaces/ToastActionElement.md +1 -1
  105. package/docs/api/interfaces/ToastProps.md +1 -1
  106. package/docs/api/interfaces/UnifiedAuthContextType.md +1 -1
  107. package/docs/api/interfaces/UnifiedAuthProviderProps.md +1 -1
  108. package/docs/api/interfaces/UseInactivityTrackerOptions.md +1 -1
  109. package/docs/api/interfaces/UseInactivityTrackerReturn.md +1 -1
  110. package/docs/api/interfaces/UsePublicEventOptions.md +1 -1
  111. package/docs/api/interfaces/UsePublicEventReturn.md +1 -1
  112. package/docs/api/interfaces/UsePublicFileDisplayOptions.md +1 -1
  113. package/docs/api/interfaces/UsePublicFileDisplayReturn.md +1 -1
  114. package/docs/api/interfaces/UsePublicRouteParamsReturn.md +1 -1
  115. package/docs/api/interfaces/UseResolvedScopeOptions.md +1 -1
  116. package/docs/api/interfaces/UseResolvedScopeReturn.md +1 -1
  117. package/docs/api/interfaces/UseResourcePermissionsOptions.md +1 -1
  118. package/docs/api/interfaces/UserEventAccess.md +1 -1
  119. package/docs/api/interfaces/UserMenuProps.md +1 -1
  120. package/docs/api/interfaces/UserProfile.md +1 -1
  121. package/docs/api/modules.md +2 -2
  122. package/package.json +1 -1
  123. package/src/components/NavigationMenu/NavigationMenu.tsx +95 -5
  124. package/dist/chunk-NRDKCKSX.js.map +0 -1
@@ -1163,19 +1163,59 @@ var NavigationMenu = React12.forwardRef(({
1163
1163
  selectedOrganisationId: filterByPermissions ? selectedOrganisation?.id || null : null,
1164
1164
  selectedEventId: filterByPermissions ? selectedEvent?.event_id || null : null
1165
1165
  });
1166
+ const [resolvedAppId, setResolvedAppId] = React12.useState(void 0);
1167
+ React12.useEffect(() => {
1168
+ if (!scopeLoading && !resolvedScope?.appId && selectedOrganisation?.id && authContext?.appName && authContext?.user?.id && !resolvedAppId) {
1169
+ if (!authContext.user || !authContext.appName) {
1170
+ return;
1171
+ }
1172
+ const userId2 = authContext.user.id;
1173
+ const appName = authContext.appName;
1174
+ import("./api-45XYYO2A.js").then(({ resolveAppContext }) => {
1175
+ resolveAppContext({
1176
+ userId: userId2,
1177
+ appName
1178
+ }).then((result) => {
1179
+ if (result?.appId) {
1180
+ setResolvedAppId(result.appId);
1181
+ }
1182
+ }).catch((error) => {
1183
+ logger.debug("NavigationMenu", "Failed to resolve appId", error);
1184
+ });
1185
+ });
1186
+ }
1187
+ }, [scopeLoading, resolvedScope?.appId, selectedOrganisation?.id, authContext?.appName, authContext?.user?.id, resolvedAppId]);
1166
1188
  const effectiveScope = React12.useMemo(() => {
1167
1189
  if (!scopeLoading && resolvedScope?.organisationId) {
1190
+ logger.warn("NavigationMenu", "Using resolvedScope", {
1191
+ organisationId: resolvedScope.organisationId,
1192
+ eventId: resolvedScope.eventId,
1193
+ appId: resolvedScope.appId
1194
+ });
1168
1195
  return resolvedScope;
1169
1196
  } else if (!scopeLoading && selectedOrganisation?.id) {
1170
- return {
1197
+ const fallbackScope = {
1171
1198
  organisationId: selectedOrganisation.id,
1172
1199
  eventId: selectedEvent?.event_id || void 0,
1173
- appId: void 0
1174
- // App ID will be resolved by usePermissions if needed
1200
+ appId: resolvedAppId
1175
1201
  };
1202
+ logger.warn("NavigationMenu", "Using fallback scope", {
1203
+ organisationId: fallbackScope.organisationId,
1204
+ eventId: fallbackScope.eventId,
1205
+ appId: fallbackScope.appId,
1206
+ resolvedAppId,
1207
+ hasResolvedScope: !!resolvedScope,
1208
+ scopeLoading
1209
+ });
1210
+ return fallbackScope;
1176
1211
  }
1212
+ logger.warn("NavigationMenu", "effectiveScope is null", {
1213
+ scopeLoading,
1214
+ hasResolvedScope: !!resolvedScope,
1215
+ hasSelectedOrganisation: !!selectedOrganisation?.id
1216
+ });
1177
1217
  return null;
1178
- }, [scopeLoading, resolvedScope, selectedOrganisation?.id, selectedEvent?.event_id]);
1218
+ }, [scopeLoading, resolvedScope, selectedOrganisation?.id, selectedEvent?.event_id, resolvedAppId]);
1179
1219
  const stableScope = React12.useMemo(() => {
1180
1220
  if (effectiveScope?.organisationId) {
1181
1221
  return {
@@ -1191,10 +1231,35 @@ var NavigationMenu = React12.forwardRef(({
1191
1231
  };
1192
1232
  }, [effectiveScope?.organisationId, effectiveScope?.eventId, effectiveScope?.appId]);
1193
1233
  const userId = authContext?.user?.id || "";
1234
+ React12.useEffect(() => {
1235
+ if (filterByPermissions && stableScope.organisationId) {
1236
+ logger.warn("NavigationMenu", "usePermissions scope", {
1237
+ userId,
1238
+ scope: stableScope,
1239
+ hasOrganisationId: !!stableScope.organisationId,
1240
+ hasEventId: !!stableScope.eventId,
1241
+ hasAppId: !!stableScope.appId,
1242
+ organisationId: stableScope.organisationId,
1243
+ eventId: stableScope.eventId,
1244
+ appId: stableScope.appId
1245
+ });
1246
+ }
1247
+ }, [filterByPermissions, stableScope.organisationId, stableScope.eventId, stableScope.appId, userId]);
1194
1248
  const { permissions: permissionMap, hasAnyPermission, isLoading: permissionsLoading, error: permissionsError } = usePermissions(
1195
1249
  userId,
1196
1250
  stableScope
1197
1251
  );
1252
+ React12.useEffect(() => {
1253
+ if (filterByPermissions) {
1254
+ logger.warn("NavigationMenu", "usePermissions result", {
1255
+ permissionMapSize: permissionMap ? Object.keys(permissionMap).length : 0,
1256
+ isLoading: permissionsLoading,
1257
+ error: permissionsError?.message,
1258
+ hasError: !!permissionsError,
1259
+ scope: stableScope
1260
+ });
1261
+ }
1262
+ }, [filterByPermissions, permissionMap, permissionsLoading, permissionsError, stableScope]);
1198
1263
  const previousFilteredItemsRef = React12.useRef([]);
1199
1264
  const filteredItems = React12.useMemo(() => {
1200
1265
  if (filterByPermissions) {
@@ -4570,4 +4635,4 @@ export {
4570
4635
  EventLogoCompact,
4571
4636
  EventLogoLarge
4572
4637
  };
4573
- //# sourceMappingURL=chunk-NRDKCKSX.js.map
4638
+ //# sourceMappingURL=chunk-UM4TRLQG.js.map