@scality/data-browser-library 1.0.0-preview.9 → 1.0.1

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 (285) hide show
  1. package/dist/components/DataBrowserUI.d.ts +12 -0
  2. package/dist/components/DataBrowserUI.js +99 -0
  3. package/dist/components/Editor.d.ts +1 -1
  4. package/dist/components/Editor.js +3 -3
  5. package/dist/components/__tests__/BucketAccessor.test.js +214 -0
  6. package/dist/components/__tests__/BucketCorsPage.test.d.ts +1 -0
  7. package/dist/components/__tests__/BucketCorsPage.test.js +263 -0
  8. package/dist/components/__tests__/BucketCreate.test.js +271 -105
  9. package/dist/components/__tests__/BucketDetails.test.d.ts +1 -0
  10. package/dist/components/__tests__/BucketDetails.test.js +421 -0
  11. package/dist/components/__tests__/BucketLifecycleFormPage.test.d.ts +13 -0
  12. package/dist/components/__tests__/BucketLifecycleFormPage.test.js +178 -178
  13. package/dist/components/__tests__/BucketLifecycleList.test.js +85 -85
  14. package/dist/components/__tests__/BucketList.test.js +463 -239
  15. package/dist/components/__tests__/BucketNotificationFormPage.test.d.ts +1 -0
  16. package/dist/components/__tests__/BucketNotificationFormPage.test.js +348 -0
  17. package/dist/components/__tests__/BucketNotificationList.test.d.ts +1 -0
  18. package/dist/components/__tests__/BucketNotificationList.test.js +379 -0
  19. package/dist/components/__tests__/BucketOverview.test.js +281 -266
  20. package/dist/components/__tests__/BucketPolicyPage.test.js +151 -99
  21. package/dist/components/__tests__/BucketReplicationFormPage.test.d.ts +15 -0
  22. package/dist/components/__tests__/BucketReplicationFormPage.test.js +544 -544
  23. package/dist/components/__tests__/BucketReplicationList.test.js +106 -106
  24. package/dist/components/__tests__/CreateFolderButton.test.js +56 -56
  25. package/dist/components/__tests__/DeleteBucketButton.test.js +64 -64
  26. package/dist/components/__tests__/DeleteBucketConfigRuleButton.test.js +47 -47
  27. package/dist/components/__tests__/DeleteObjectButton.test.js +64 -64
  28. package/dist/components/__tests__/EmptyBucketButton.test.js +59 -59
  29. package/dist/components/__tests__/MetadataSearch.test.js +65 -65
  30. package/dist/components/__tests__/ObjectList.test.js +741 -240
  31. package/dist/components/__tests__/UploadButton.test.js +45 -45
  32. package/dist/components/breadcrumb/Breadcrumb.d.ts +6 -0
  33. package/dist/components/breadcrumb/Breadcrumb.js +37 -0
  34. package/dist/components/breadcrumb/DataBrowserBreadcrumb.d.ts +1 -0
  35. package/dist/components/breadcrumb/DataBrowserBreadcrumb.js +10 -0
  36. package/dist/components/breadcrumb/__tests__/Breadcrumb.test.d.ts +1 -0
  37. package/dist/components/breadcrumb/__tests__/Breadcrumb.test.js +196 -0
  38. package/dist/components/breadcrumb/__tests__/DataBrowserBreadcrumb.test.d.ts +1 -0
  39. package/dist/components/breadcrumb/__tests__/DataBrowserBreadcrumb.test.js +153 -0
  40. package/dist/components/breadcrumb/__tests__/useBreadcrumbPaths.test.d.ts +1 -0
  41. package/dist/components/breadcrumb/__tests__/useBreadcrumbPaths.test.js +134 -0
  42. package/dist/components/breadcrumb/index.d.ts +8 -0
  43. package/dist/components/breadcrumb/index.js +4 -0
  44. package/dist/components/breadcrumb/useBreadcrumbPaths.d.ts +2 -0
  45. package/dist/components/breadcrumb/useBreadcrumbPaths.js +82 -0
  46. package/dist/components/buckets/BucketAccessor.d.ts +2 -0
  47. package/dist/components/buckets/BucketAccessor.js +125 -0
  48. package/dist/components/buckets/BucketConfigEditButton.d.ts +8 -0
  49. package/dist/components/buckets/{BucketPolicyButton.js → BucketConfigEditButton.js} +9 -5
  50. package/dist/components/buckets/BucketCorsPage.d.ts +1 -0
  51. package/dist/components/buckets/BucketCorsPage.js +234 -0
  52. package/dist/components/buckets/BucketCreate.d.ts +3 -2
  53. package/dist/components/buckets/BucketCreate.js +89 -47
  54. package/dist/components/buckets/BucketDetails.d.ts +42 -0
  55. package/dist/components/buckets/BucketDetails.js +249 -85
  56. package/dist/components/buckets/BucketLifecycleFormPage.js +206 -190
  57. package/dist/components/buckets/BucketLifecycleList.d.ts +2 -2
  58. package/dist/components/buckets/BucketLifecycleList.js +47 -47
  59. package/dist/components/buckets/BucketList.d.ts +7 -8
  60. package/dist/components/buckets/BucketList.js +158 -101
  61. package/dist/components/buckets/BucketLocation.js +4 -4
  62. package/dist/components/buckets/BucketOverview.d.ts +22 -2
  63. package/dist/components/buckets/BucketOverview.js +394 -187
  64. package/dist/components/buckets/BucketPage.js +43 -21
  65. package/dist/components/buckets/BucketPolicyPage.js +155 -127
  66. package/dist/components/buckets/BucketReplicationFormPage.js +134 -133
  67. package/dist/components/buckets/BucketReplicationList.d.ts +2 -2
  68. package/dist/components/buckets/BucketReplicationList.js +42 -42
  69. package/dist/components/buckets/BucketVersioning.d.ts +4 -0
  70. package/dist/components/buckets/BucketVersioning.js +76 -0
  71. package/dist/components/buckets/DeleteBucketButton.js +8 -8
  72. package/dist/components/buckets/DeleteBucketConfigRuleButton.d.ts +2 -2
  73. package/dist/components/buckets/DeleteBucketConfigRuleButton.js +2 -2
  74. package/dist/components/buckets/EmptyBucketButton.js +24 -24
  75. package/dist/components/buckets/EmptyBucketSummary.d.ts +2 -2
  76. package/dist/components/buckets/EmptyBucketSummary.js +1 -1
  77. package/dist/components/buckets/EmptyBucketSummaryList.d.ts +1 -1
  78. package/dist/components/buckets/EmptyBucketSummaryList.js +22 -22
  79. package/dist/components/buckets/__tests__/BucketVersioning.test.d.ts +1 -0
  80. package/dist/components/buckets/__tests__/BucketVersioning.test.js +163 -0
  81. package/dist/components/buckets/notifications/BucketNotificationFormPage.d.ts +1 -0
  82. package/dist/components/buckets/notifications/BucketNotificationFormPage.js +316 -0
  83. package/dist/components/buckets/notifications/BucketNotificationList.d.ts +10 -0
  84. package/dist/components/buckets/notifications/BucketNotificationList.js +267 -0
  85. package/dist/components/buckets/notifications/EventsSection.js +145 -29
  86. package/dist/components/buckets/notifications/__tests__/events.test.d.ts +1 -0
  87. package/dist/components/buckets/notifications/__tests__/events.test.js +56 -0
  88. package/dist/components/buckets/notifications/events.d.ts +71 -7
  89. package/dist/components/buckets/notifications/events.js +98 -16
  90. package/dist/components/index.d.ts +27 -20
  91. package/dist/components/index.js +17 -10
  92. package/dist/components/layouts/ArrowNavigation.d.ts +3 -0
  93. package/dist/components/layouts/ArrowNavigation.js +28 -0
  94. package/dist/components/layouts/BrowserPageLayout.d.ts +5 -1
  95. package/dist/components/layouts/BrowserPageLayout.js +10 -5
  96. package/dist/components/objects/CreateFolderButton.d.ts +2 -2
  97. package/dist/components/objects/CreateFolderButton.js +12 -12
  98. package/dist/components/objects/DeleteObjectButton.d.ts +1 -1
  99. package/dist/components/objects/DeleteObjectButton.js +19 -21
  100. package/dist/components/objects/GetPresignedUrlButton.d.ts +7 -0
  101. package/dist/components/objects/GetPresignedUrlButton.js +255 -0
  102. package/dist/components/objects/ObjectDetails/ObjectMetadata.d.ts +2 -2
  103. package/dist/components/objects/ObjectDetails/ObjectMetadata.js +263 -230
  104. package/dist/components/objects/ObjectDetails/ObjectSummary.d.ts +2 -2
  105. package/dist/components/objects/ObjectDetails/ObjectSummary.js +540 -138
  106. package/dist/components/objects/ObjectDetails/ObjectTags.d.ts +2 -2
  107. package/dist/components/objects/ObjectDetails/ObjectTags.js +95 -123
  108. package/dist/components/objects/ObjectDetails/__tests__/ObjectDetails.test.d.ts +1 -0
  109. package/dist/components/objects/ObjectDetails/__tests__/ObjectDetails.test.js +516 -0
  110. package/dist/components/objects/ObjectDetails/__tests__/ObjectSummary.test.d.ts +1 -0
  111. package/dist/components/objects/ObjectDetails/__tests__/ObjectSummary.test.js +1064 -0
  112. package/dist/components/objects/ObjectDetails/index.d.ts +18 -2
  113. package/dist/components/objects/ObjectDetails/index.js +152 -40
  114. package/dist/components/objects/ObjectList.d.ts +12 -10
  115. package/dist/components/objects/ObjectList.js +590 -263
  116. package/dist/components/objects/ObjectLock/EditRetentionButton.js +4 -4
  117. package/dist/components/objects/ObjectLock/ObjectLockRetentionSettings.js +15 -15
  118. package/dist/components/objects/ObjectLock/ObjectLockSettings.d.ts +1 -1
  119. package/dist/components/objects/ObjectLock/ObjectLockSettings.js +32 -31
  120. package/dist/components/objects/ObjectLock/ObjectLockSettingsUtils.d.ts +1 -1
  121. package/dist/components/objects/ObjectLock/ObjectLockSettingsUtils.js +6 -6
  122. package/dist/components/objects/ObjectLock/__tests__/EditRetentionButton.test.js +51 -51
  123. package/dist/components/objects/ObjectLock/__tests__/ObjectLockSettings.test.js +78 -78
  124. package/dist/components/objects/ObjectPage.js +12 -8
  125. package/dist/components/objects/UploadButton.d.ts +3 -3
  126. package/dist/components/objects/UploadButton.js +10 -10
  127. package/dist/components/objects/__tests__/GetPresignedUrlButton.test.d.ts +1 -0
  128. package/dist/components/objects/__tests__/GetPresignedUrlButton.test.js +531 -0
  129. package/dist/components/providers/DataBrowserProvider.d.ts +23 -12
  130. package/dist/components/providers/DataBrowserProvider.js +60 -38
  131. package/dist/components/providers/QueryProvider.d.ts +9 -0
  132. package/dist/components/providers/QueryProvider.js +21 -0
  133. package/dist/components/search/MetadataSearch.js +29 -28
  134. package/dist/components/search/SearchHints.js +1 -1
  135. package/dist/components/ui/ArrayFieldActions.js +12 -7
  136. package/dist/components/ui/ConfirmDeleteRuleModal.d.ts +2 -2
  137. package/dist/components/ui/ConfirmDeleteRuleModal.js +6 -1
  138. package/dist/components/ui/DeleteObjectModalContent.d.ts +1 -1
  139. package/dist/components/ui/DeleteObjectModalContent.js +12 -12
  140. package/dist/components/ui/FilterFormSection.d.ts +2 -2
  141. package/dist/components/ui/FilterFormSection.js +29 -29
  142. package/dist/components/ui/Search.elements.d.ts +2 -2
  143. package/dist/components/ui/Search.elements.js +7 -7
  144. package/dist/components/ui/Table.elements.d.ts +2 -1
  145. package/dist/components/ui/Table.elements.js +18 -12
  146. package/dist/config/__tests__/factory.test.d.ts +1 -0
  147. package/dist/config/__tests__/factory.test.js +311 -0
  148. package/dist/config/factory.d.ts +10 -56
  149. package/dist/config/factory.js +23 -71
  150. package/dist/config/types.d.ts +212 -34
  151. package/dist/contexts/DataBrowserUICustomizationContext.d.ts +27 -0
  152. package/dist/contexts/DataBrowserUICustomizationContext.js +13 -0
  153. package/dist/hooks/__tests__/useAccessibleBuckets.test.d.ts +1 -0
  154. package/dist/hooks/__tests__/useAccessibleBuckets.test.js +145 -0
  155. package/dist/hooks/__tests__/useISVBucketDetection.test.js +45 -45
  156. package/dist/hooks/__tests__/useIsBucketEmpty.test.js +27 -27
  157. package/dist/hooks/__tests__/useLoginMutation.test.d.ts +1 -0
  158. package/dist/hooks/__tests__/useLoginMutation.test.js +194 -0
  159. package/dist/hooks/bucketConfiguration.d.ts +8 -1
  160. package/dist/hooks/bucketConfiguration.js +52 -51
  161. package/dist/hooks/bucketOperations.d.ts +10 -1
  162. package/dist/hooks/bucketOperations.js +10 -9
  163. package/dist/hooks/factories/__tests__/useCreateS3FunctionMutationHook.test.js +80 -80
  164. package/dist/hooks/factories/__tests__/useCreateS3InfiniteQueryHook.test.js +80 -80
  165. package/dist/hooks/factories/__tests__/useCreateS3LoginHook.test.js +44 -44
  166. package/dist/hooks/factories/__tests__/useCreateS3MutationHook.test.js +63 -63
  167. package/dist/hooks/factories/__tests__/useCreateS3QueryHook.test.js +65 -65
  168. package/dist/hooks/factories/index.d.ts +4 -4
  169. package/dist/hooks/factories/index.js +2 -2
  170. package/dist/hooks/factories/useCreateS3InfiniteQueryHook.d.ts +2 -2
  171. package/dist/hooks/factories/useCreateS3InfiniteQueryHook.js +16 -13
  172. package/dist/hooks/factories/useCreateS3LoginHook.d.ts +2 -2
  173. package/dist/hooks/factories/useCreateS3LoginHook.js +1 -1
  174. package/dist/hooks/factories/useCreateS3MutationHook.d.ts +3 -3
  175. package/dist/hooks/factories/useCreateS3MutationHook.js +7 -2
  176. package/dist/hooks/factories/useCreateS3QueryHook.d.ts +2 -2
  177. package/dist/hooks/factories/useCreateS3QueryHook.js +11 -6
  178. package/dist/hooks/index.d.ts +19 -12
  179. package/dist/hooks/index.js +16 -9
  180. package/dist/hooks/loginOperations.d.ts +1 -1
  181. package/dist/hooks/loginOperations.js +1 -1
  182. package/dist/hooks/objectOperations.d.ts +2 -2
  183. package/dist/hooks/objectOperations.js +50 -49
  184. package/dist/hooks/presignedOperations.d.ts +4 -4
  185. package/dist/hooks/presignedOperations.js +5 -5
  186. package/dist/hooks/useAccessibleBuckets.d.ts +11 -0
  187. package/dist/hooks/useAccessibleBuckets.js +115 -0
  188. package/dist/hooks/useBatchObjectLegalHold.d.ts +11 -0
  189. package/dist/hooks/useBatchObjectLegalHold.js +48 -0
  190. package/dist/hooks/useBucketConfigEditor.d.ts +31 -0
  191. package/dist/hooks/useBucketConfigEditor.js +82 -0
  192. package/dist/hooks/useDataBrowserNavigate.d.ts +28 -0
  193. package/dist/hooks/useDataBrowserNavigate.js +24 -0
  194. package/dist/hooks/useDeleteBucketConfigRule.d.ts +2 -2
  195. package/dist/hooks/useDeleteBucketConfigRule.js +4 -4
  196. package/dist/hooks/useEmptyBucket.js +11 -11
  197. package/dist/hooks/useFeatures.d.ts +7 -0
  198. package/dist/hooks/useFeatures.js +8 -0
  199. package/dist/hooks/useISVBucketDetection.js +6 -6
  200. package/dist/hooks/useIsBucketEmpty.js +4 -4
  201. package/dist/hooks/useLimitedAccessFlow.d.ts +48 -0
  202. package/dist/hooks/useLimitedAccessFlow.js +23 -0
  203. package/dist/hooks/useS3Client.d.ts +6 -0
  204. package/dist/hooks/useS3Client.js +3 -2
  205. package/dist/hooks/useS3ConfigSwitch.d.ts +11 -0
  206. package/dist/hooks/useS3ConfigSwitch.js +37 -0
  207. package/dist/hooks/useSupportedNotificationEvents.d.ts +6 -0
  208. package/dist/hooks/useSupportedNotificationEvents.js +8 -0
  209. package/dist/index.d.ts +6 -6
  210. package/dist/index.js +2 -2
  211. package/dist/schemas/bucketPolicySchema.json +3 -13
  212. package/dist/test/msw/handlers/deleteBucket.d.ts +1 -1
  213. package/dist/test/msw/handlers/deleteBucket.js +20 -10
  214. package/dist/test/msw/handlers/getBucketAcl.d.ts +1 -1
  215. package/dist/test/msw/handlers/getBucketAcl.js +29 -17
  216. package/dist/test/msw/handlers/getBucketLocation.d.ts +1 -1
  217. package/dist/test/msw/handlers/getBucketLocation.js +29 -15
  218. package/dist/test/msw/handlers/getBucketPolicy.d.ts +1 -1
  219. package/dist/test/msw/handlers/getBucketPolicy.js +52 -32
  220. package/dist/test/msw/handlers/headObject.d.ts +1 -1
  221. package/dist/test/msw/handlers/headObject.js +31 -13
  222. package/dist/test/msw/handlers/listBuckets.d.ts +1 -1
  223. package/dist/test/msw/handlers/listBuckets.js +5 -3
  224. package/dist/test/msw/handlers/listObjectVersions.d.ts +1 -1
  225. package/dist/test/msw/handlers/listObjectVersions.js +38 -26
  226. package/dist/test/msw/handlers/listObjects.d.ts +1 -1
  227. package/dist/test/msw/handlers/listObjects.js +35 -23
  228. package/dist/test/msw/handlers/objectLegalHold.d.ts +1 -1
  229. package/dist/test/msw/handlers/objectLegalHold.js +32 -17
  230. package/dist/test/msw/handlers/objectRetention.d.ts +1 -1
  231. package/dist/test/msw/handlers/objectRetention.js +31 -17
  232. package/dist/test/msw/handlers/putBucketAcl.d.ts +1 -1
  233. package/dist/test/msw/handlers/putBucketAcl.js +29 -14
  234. package/dist/test/msw/handlers/putObject.d.ts +1 -1
  235. package/dist/test/msw/handlers/putObject.js +27 -12
  236. package/dist/test/msw/handlers.d.ts +3 -3
  237. package/dist/test/msw/handlers.js +77 -54
  238. package/dist/test/msw/index.d.ts +2 -2
  239. package/dist/test/msw/index.js +1 -1
  240. package/dist/test/msw/server.d.ts +1 -1
  241. package/dist/test/msw/server.js +1 -1
  242. package/dist/test/msw/utils.js +2 -2
  243. package/dist/test/setup.d.ts +1 -1
  244. package/dist/test/setup.js +13 -30
  245. package/dist/test/testUtils.d.ts +85 -33
  246. package/dist/test/testUtils.js +176 -111
  247. package/dist/test/utils/errorHandling.test.js +119 -119
  248. package/dist/types/index.d.ts +49 -36
  249. package/dist/types/monaco.d.ts +13 -0
  250. package/dist/types/monaco.js +0 -0
  251. package/dist/utils/__tests__/proxyMiddleware.test.d.ts +1 -0
  252. package/dist/utils/__tests__/proxyMiddleware.test.js +579 -0
  253. package/dist/utils/__tests__/s3Client.test.d.ts +1 -0
  254. package/dist/utils/__tests__/s3Client.test.js +340 -0
  255. package/dist/utils/__tests__/s3ConfigIdentifier.test.d.ts +1 -0
  256. package/dist/utils/__tests__/s3ConfigIdentifier.test.js +437 -0
  257. package/dist/utils/constants.d.ts +10 -0
  258. package/dist/utils/constants.js +19 -9
  259. package/dist/utils/deletion/index.d.ts +2 -2
  260. package/dist/utils/deletion/index.js +1 -1
  261. package/dist/utils/deletion/messages.d.ts +1 -1
  262. package/dist/utils/deletion/messages.js +4 -4
  263. package/dist/utils/errorHandling.d.ts +3 -3
  264. package/dist/utils/errorHandling.js +6 -6
  265. package/dist/utils/hooks.js +8 -8
  266. package/dist/utils/index.d.ts +5 -4
  267. package/dist/utils/index.js +4 -2
  268. package/dist/utils/proxyMiddleware.d.ts +32 -13
  269. package/dist/utils/proxyMiddleware.js +90 -36
  270. package/dist/utils/s3Client.d.ts +14 -4
  271. package/dist/utils/s3Client.js +5 -26
  272. package/dist/utils/s3ConfigIdentifier.d.ts +79 -0
  273. package/dist/utils/s3ConfigIdentifier.js +57 -0
  274. package/dist/utils/s3RuleUtils.d.ts +5 -5
  275. package/dist/utils/s3RuleUtils.js +17 -17
  276. package/package.json +10 -8
  277. package/dist/components/__tests__/BucketNotificationCreatePage.test.js +0 -316
  278. package/dist/components/buckets/BucketPolicyButton.d.ts +0 -7
  279. package/dist/components/buckets/notifications/BucketNotificationCreatePage.d.ts +0 -1
  280. package/dist/components/buckets/notifications/BucketNotificationCreatePage.js +0 -234
  281. package/dist/hooks/useLoginMutation.d.ts +0 -21
  282. package/dist/hooks/useLoginMutation.js +0 -9
  283. package/dist/utils/useFeatures.d.ts +0 -1
  284. package/dist/utils/useFeatures.js +0 -7
  285. /package/dist/components/__tests__/{BucketNotificationCreatePage.test.d.ts → BucketAccessor.test.d.ts} +0 -0
@@ -1,103 +1,267 @@
1
1
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
2
- import { useQueryParams } from "../../utils/hooks.js";
3
- import { useNavigate, useParams } from "react-router-dom";
4
2
  import { Tabs } from "@scality/core-ui/dist/next";
3
+ import { createContext, memo, useCallback, useContext, useMemo } from "react";
4
+ import { useParams } from "react-router";
5
+ import { useDataBrowserUICustomization } from "../../contexts/DataBrowserUICustomizationContext.js";
6
+ import { useGetBucketLifecycle, useGetBucketNotification, useGetBucketReplication } from "../../hooks/bucketConfiguration.js";
7
+ import { useDataBrowserNavigate } from "../../hooks/useDataBrowserNavigate.js";
8
+ import { BUCKET_ROUTES } from "../../utils/constants.js";
9
+ import { isNotFoundError } from "../../utils/errorHandling.js";
10
+ import { BucketLifecycleList } from "./BucketLifecycleList.js";
5
11
  import { BucketOverview } from "./BucketOverview.js";
12
+ import { BucketReplicationList } from "./BucketReplicationList.js";
13
+ import { BucketVersioning } from "./BucketVersioning.js";
6
14
  import { DeleteBucketButton } from "./DeleteBucketButton.js";
7
15
  import { EmptyBucketButton } from "./EmptyBucketButton.js";
8
- import { BucketLifecycleList } from "./BucketLifecycleList.js";
9
- import { BucketReplicationList } from "./BucketReplicationList.js";
10
- import { useGetBucketLifecycle, useGetBucketReplication } from "../../hooks/bucketConfiguration.js";
11
- import { isNotFoundError } from "../../utils/errorHandling.js";
12
- function BucketDetails() {
13
- const query = useQueryParams();
14
- const queryObject = Object.fromEntries(query.entries());
15
- const { bucketName } = useParams();
16
- const navigate = useNavigate();
16
+ import { BucketNotificationList } from "./notifications/BucketNotificationList.js";
17
+ const BucketDetailsContext = /*#__PURE__*/ createContext(null);
18
+ function useBucketDetailsContext() {
19
+ const context = useContext(BucketDetailsContext);
20
+ if (!context) throw new Error('BucketDetails components must be used within BucketDetails');
21
+ return context;
22
+ }
23
+ const getEffectiveStatus = (status, error)=>{
24
+ if (isNotFoundError(error)) return 'success';
25
+ if ('pending' === status) return 'loading';
26
+ if ('error' === status) return 'error';
27
+ return 'success';
28
+ };
29
+ const ExtraSectionContent = /*#__PURE__*/ memo(({ render })=>/*#__PURE__*/ jsx(Fragment, {
30
+ children: render()
31
+ }));
32
+ ExtraSectionContent.displayName = 'BucketDetails.ExtraSectionContent';
33
+ const OverviewTab = /*#__PURE__*/ memo(()=>{
34
+ const { bucketName, navigate } = useBucketDetailsContext();
35
+ const { extraBucketOverviewSections } = useDataBrowserUICustomization();
36
+ const renderDeleteButton = useCallback((name)=>/*#__PURE__*/ jsx(DeleteBucketButton, {
37
+ bucketName: name
38
+ }), []);
39
+ const renderEmptyButton = useCallback((name)=>/*#__PURE__*/ jsx(EmptyBucketButton, {
40
+ bucketName: name
41
+ }), []);
42
+ const renderVersioning = useCallback(()=>/*#__PURE__*/ jsx(BucketVersioning, {}), []);
43
+ const handleEditPolicy = useCallback((name)=>navigate(BUCKET_ROUTES.bucketPolicy(name)), [
44
+ navigate
45
+ ]);
46
+ const handleEditCors = useCallback((name)=>navigate(BUCKET_ROUTES.bucketCors(name)), [
47
+ navigate
48
+ ]);
49
+ return /*#__PURE__*/ jsxs(BucketOverview, {
50
+ bucketName: bucketName,
51
+ children: [
52
+ /*#__PURE__*/ jsx(BucketOverview.Actions, {
53
+ renderDeleteButton: renderDeleteButton,
54
+ renderEmptyButton: renderEmptyButton
55
+ }),
56
+ /*#__PURE__*/ jsxs(BucketOverview.Sections, {
57
+ children: [
58
+ /*#__PURE__*/ jsx(BucketOverview.GeneralSection, {
59
+ renderVersioning: renderVersioning
60
+ }),
61
+ extraBucketOverviewSections?.map((section)=>/*#__PURE__*/ jsx(BucketOverview.Section, {
62
+ title: section.title,
63
+ children: /*#__PURE__*/ jsx(ExtraSectionContent, {
64
+ render: section.render
65
+ })
66
+ }, section.id)),
67
+ /*#__PURE__*/ jsx(BucketOverview.DataProtectionSection, {}),
68
+ /*#__PURE__*/ jsx(BucketOverview.PermissionsSection, {
69
+ onEditPolicy: handleEditPolicy,
70
+ onEditCors: handleEditCors
71
+ })
72
+ ]
73
+ })
74
+ ]
75
+ });
76
+ });
77
+ OverviewTab.displayName = 'BucketDetails.OverviewTab';
78
+ const LifecycleTab = /*#__PURE__*/ memo(()=>{
79
+ const { bucketName, navigate } = useBucketDetailsContext();
17
80
  const { data: lifecycleData, status: lifecycleStatus, error: lifecycleError } = useGetBucketLifecycle({
18
81
  Bucket: bucketName
19
82
  });
83
+ const lifecycleRules = lifecycleData?.Rules || [];
84
+ const effectiveStatus = getEffectiveStatus(lifecycleStatus, lifecycleError);
85
+ const handleCreateRule = useCallback(()=>navigate(BUCKET_ROUTES.lifecycleCreate(bucketName)), [
86
+ navigate,
87
+ bucketName
88
+ ]);
89
+ const handleEditRule = useCallback((ruleId)=>navigate(BUCKET_ROUTES.lifecycleEdit(bucketName, ruleId)), [
90
+ navigate,
91
+ bucketName
92
+ ]);
93
+ return /*#__PURE__*/ jsx(BucketLifecycleList, {
94
+ bucketName: bucketName,
95
+ lifecycleRules: lifecycleRules,
96
+ lifecycleStatus: effectiveStatus,
97
+ onCreateRule: handleCreateRule,
98
+ onEditRule: handleEditRule
99
+ });
100
+ });
101
+ LifecycleTab.displayName = 'BucketDetails.LifecycleTab';
102
+ const ReplicationTab = /*#__PURE__*/ memo(()=>{
103
+ const { bucketName, navigate } = useBucketDetailsContext();
20
104
  const { data: replicationData, status: replicationStatus, error: replicationError } = useGetBucketReplication({
21
105
  Bucket: bucketName
22
106
  });
23
- const lifecycleRules = lifecycleData?.Rules || [];
24
107
  const replicationRules = replicationData?.ReplicationConfiguration?.Rules || [];
25
- const replicationRole = replicationData?.ReplicationConfiguration?.Role || "";
26
- const effectiveLifecycleStatus = isNotFoundError(lifecycleError) ? "success" : "pending" === lifecycleStatus ? "loading" : "error" === lifecycleStatus ? "error" : "success";
27
- const effectiveReplicationStatus = isNotFoundError(replicationError) ? "success" : "pending" === replicationStatus ? "loading" : "error" === replicationStatus ? "error" : "success";
108
+ const replicationRole = replicationData?.ReplicationConfiguration?.Role || '';
109
+ const effectiveStatus = getEffectiveStatus(replicationStatus, replicationError);
110
+ const handleCreateRule = useCallback(()=>navigate(BUCKET_ROUTES.replicationCreate(bucketName)), [
111
+ navigate,
112
+ bucketName
113
+ ]);
114
+ const handleEditRule = useCallback((ruleId)=>navigate(BUCKET_ROUTES.replicationEdit(bucketName, ruleId)), [
115
+ navigate,
116
+ bucketName
117
+ ]);
118
+ return /*#__PURE__*/ jsx(BucketReplicationList, {
119
+ bucketName: bucketName,
120
+ replicationRules: replicationRules,
121
+ replicationRole: replicationRole,
122
+ replicationStatus: effectiveStatus,
123
+ onCreateRule: handleCreateRule,
124
+ onEditRule: handleEditRule
125
+ });
126
+ });
127
+ ReplicationTab.displayName = 'BucketDetails.ReplicationTab';
128
+ const NotificationTab = /*#__PURE__*/ memo(()=>{
129
+ const { bucketName, navigate } = useBucketDetailsContext();
130
+ const { data: notificationData, status: notificationStatus, error: notificationError } = useGetBucketNotification({
131
+ Bucket: bucketName
132
+ });
133
+ const notificationRules = notificationData?.QueueConfigurations || [];
134
+ const effectiveStatus = getEffectiveStatus(notificationStatus, notificationError);
135
+ const handleCreateRule = useCallback(()=>navigate(BUCKET_ROUTES.notificationCreate(bucketName)), [
136
+ navigate,
137
+ bucketName
138
+ ]);
139
+ const handleEditRule = useCallback((ruleId)=>navigate(BUCKET_ROUTES.notificationEdit(bucketName, ruleId)), [
140
+ navigate,
141
+ bucketName
142
+ ]);
143
+ return /*#__PURE__*/ jsx(BucketNotificationList, {
144
+ bucketName: bucketName,
145
+ notificationRules: notificationRules,
146
+ notificationStatus: effectiveStatus,
147
+ onCreateRule: handleCreateRule,
148
+ onEditRule: handleEditRule
149
+ });
150
+ });
151
+ NotificationTab.displayName = 'BucketDetails.NotificationTab';
152
+ const CustomTab = ({ config })=>/*#__PURE__*/ jsx(Fragment, {
153
+ children: config.render()
154
+ });
155
+ CustomTab.displayName = 'BucketDetails.CustomTab';
156
+ const BucketDetailsRoot = ({ children })=>{
157
+ const { bucketName } = useParams();
158
+ const navigate = useDataBrowserNavigate();
159
+ const contextValue = useMemo(()=>({
160
+ bucketName: bucketName || '',
161
+ navigate
162
+ }), [
163
+ bucketName,
164
+ navigate
165
+ ]);
28
166
  if (!bucketName) return /*#__PURE__*/ jsx("div", {
29
167
  children: "No bucket selected"
30
168
  });
31
- return /*#__PURE__*/ jsx(Fragment, {
32
- children: /*#__PURE__*/ jsxs(Tabs, {
33
- children: [
34
- /*#__PURE__*/ jsx(Tabs.Tab, {
35
- label: "Overview",
36
- path: "",
37
- query: {
38
- ...queryObject,
39
- tab: ""
40
- },
41
- children: /*#__PURE__*/ jsxs(BucketOverview, {
42
- bucketName: bucketName,
43
- children: [
44
- /*#__PURE__*/ jsx(BucketOverview.Actions, {
45
- renderDeleteButton: ()=>/*#__PURE__*/ jsx(DeleteBucketButton, {
46
- bucketName: bucketName
47
- }),
48
- renderEmptyButton: ()=>/*#__PURE__*/ jsx(EmptyBucketButton, {
49
- bucketName: bucketName
50
- })
51
- }),
52
- /*#__PURE__*/ jsxs(BucketOverview.Sections, {
53
- children: [
54
- /*#__PURE__*/ jsx(BucketOverview.GeneralSection, {}),
55
- /*#__PURE__*/ jsx(BucketOverview.DataProtectionSection, {}),
56
- /*#__PURE__*/ jsx(BucketOverview.PermissionsSection, {
57
- onEditPolicy: ()=>{
58
- navigate(`/buckets/${bucketName}/policy`);
59
- }
60
- })
61
- ]
62
- })
63
- ]
64
- })
65
- }),
66
- /*#__PURE__*/ jsx(Tabs.Tab, {
67
- label: "Lifecycle",
68
- path: "",
69
- query: {
70
- ...queryObject,
71
- tab: "lifecycle"
72
- },
73
- withoutPadding: true,
74
- children: /*#__PURE__*/ jsx(BucketLifecycleList, {
75
- bucketName: bucketName,
76
- lifecycleRules: lifecycleRules,
77
- lifecycleStatus: effectiveLifecycleStatus,
78
- onCreateRule: ()=>navigate(`/buckets/${bucketName}/lifecycle/create`),
79
- onEditRule: (ruleId)=>navigate(`/buckets/${bucketName}/lifecycle/edit/${encodeURIComponent(ruleId)}`)
80
- })
81
- }),
82
- /*#__PURE__*/ jsx(Tabs.Tab, {
83
- label: "Replication",
84
- path: "",
85
- query: {
86
- ...queryObject,
87
- tab: "replication"
88
- },
89
- withoutPadding: true,
90
- children: /*#__PURE__*/ jsx(BucketReplicationList, {
91
- bucketName: bucketName,
92
- replicationRules: replicationRules,
93
- replicationRole: replicationRole,
94
- replicationStatus: effectiveReplicationStatus,
95
- onCreateRule: ()=>navigate(`/buckets/${bucketName}/replication/create`),
96
- onEditRule: (ruleId)=>navigate(`/buckets/${bucketName}/replication/edit/${encodeURIComponent(ruleId)}`)
97
- })
169
+ return /*#__PURE__*/ jsx(BucketDetailsContext.Provider, {
170
+ value: contextValue,
171
+ children: children || /*#__PURE__*/ jsx(DefaultTabs, {})
172
+ });
173
+ };
174
+ BucketDetailsRoot.displayName = 'BucketDetails';
175
+ const DefaultTabs = ()=>{
176
+ const { extraBucketTabs } = useDataBrowserUICustomization();
177
+ const defaultTabsMap = useMemo(()=>({
178
+ overview: {
179
+ id: 'overview',
180
+ label: 'Overview',
181
+ path: '',
182
+ withoutPadding: false,
183
+ query: {
184
+ tab: ''
185
+ },
186
+ type: 'default',
187
+ Component: OverviewTab
188
+ },
189
+ lifecycle: {
190
+ id: 'lifecycle',
191
+ label: 'Lifecycle',
192
+ path: '',
193
+ withoutPadding: true,
194
+ query: {
195
+ tab: 'lifecycle'
196
+ },
197
+ type: 'default',
198
+ Component: LifecycleTab
199
+ },
200
+ replication: {
201
+ id: 'replication',
202
+ label: 'Replication',
203
+ path: '',
204
+ withoutPadding: true,
205
+ query: {
206
+ tab: 'replication'
207
+ },
208
+ type: 'default',
209
+ Component: ReplicationTab
210
+ },
211
+ notification: {
212
+ id: 'notification',
213
+ label: 'Notification',
214
+ path: '',
215
+ withoutPadding: true,
216
+ query: {
217
+ tab: 'notification'
218
+ },
219
+ type: 'default',
220
+ Component: NotificationTab
221
+ }
222
+ }), []);
223
+ const allTabs = useMemo(()=>{
224
+ const customTabConfigs = extraBucketTabs ? extraBucketTabs.map((tabConfig)=>({
225
+ id: tabConfig.id,
226
+ label: tabConfig.title,
227
+ path: tabConfig.path || '',
228
+ query: {
229
+ tab: tabConfig.id
230
+ },
231
+ withoutPadding: tabConfig.withoutPadding || false,
232
+ type: 'custom',
233
+ config: tabConfig
234
+ })) : [];
235
+ const overrideIds = new Set(customTabConfigs.filter((t)=>t.id in defaultTabsMap).map((t)=>t.id));
236
+ const defaults = Object.values(defaultTabsMap).filter((tab)=>!overrideIds.has(tab.id));
237
+ return [
238
+ ...defaults,
239
+ ...customTabConfigs
240
+ ];
241
+ }, [
242
+ extraBucketTabs,
243
+ defaultTabsMap
244
+ ]);
245
+ return /*#__PURE__*/ jsx(Tabs, {
246
+ children: allTabs.map((tab)=>/*#__PURE__*/ jsx(Tabs.Tab, {
247
+ label: tab.label,
248
+ path: tab.path,
249
+ query: tab.query,
250
+ withoutPadding: tab.withoutPadding,
251
+ children: 'default' === tab.type ? /*#__PURE__*/ jsx(tab.Component, {}) : /*#__PURE__*/ jsx(CustomTab, {
252
+ config: tab.config
98
253
  })
99
- ]
100
- })
254
+ }, tab.id))
101
255
  });
256
+ };
257
+ DefaultTabs.displayName = 'BucketDetails.DefaultTabs';
258
+ function BucketDetails() {
259
+ return /*#__PURE__*/ jsx(BucketDetailsRoot, {});
102
260
  }
103
- export { BucketDetails };
261
+ const BucketDetailsCompound = BucketDetailsRoot;
262
+ BucketDetailsCompound.OverviewTab = OverviewTab;
263
+ BucketDetailsCompound.LifecycleTab = LifecycleTab;
264
+ BucketDetailsCompound.ReplicationTab = ReplicationTab;
265
+ BucketDetailsCompound.NotificationTab = NotificationTab;
266
+ BucketDetailsCompound.CustomTab = CustomTab;
267
+ export { BucketDetails, BucketDetailsCompound, BucketDetailsContext, useBucketDetailsContext };