@strapi/upload 5.49.0 → 5.50.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.
- package/dist/admin/ai/components/AIAssetCard.js +10 -10
- package/dist/admin/ai/components/AIAssetCard.js.map +1 -1
- package/dist/admin/ai/components/AIAssetCard.mjs +11 -11
- package/dist/admin/ai/components/AIAssetCard.mjs.map +1 -1
- package/dist/admin/ai/components/AIUploadModal.js +0 -1
- package/dist/admin/ai/components/AIUploadModal.js.map +1 -1
- package/dist/admin/ai/components/AIUploadModal.mjs +0 -1
- package/dist/admin/ai/components/AIUploadModal.mjs.map +1 -1
- package/dist/admin/components/AssetCard/AssetCard.js +3 -4
- package/dist/admin/components/AssetCard/AssetCard.js.map +1 -1
- package/dist/admin/components/AssetCard/AssetCard.mjs +4 -5
- package/dist/admin/components/AssetCard/AssetCard.mjs.map +1 -1
- package/dist/admin/components/AssetCard/AssetCardBase.js +0 -1
- package/dist/admin/components/AssetCard/AssetCardBase.js.map +1 -1
- package/dist/admin/components/AssetCard/AssetCardBase.mjs +0 -1
- package/dist/admin/components/AssetCard/AssetCardBase.mjs.map +1 -1
- package/dist/admin/components/AssetCard/ImageAssetCard.js +0 -1
- package/dist/admin/components/AssetCard/ImageAssetCard.js.map +1 -1
- package/dist/admin/components/AssetCard/ImageAssetCard.mjs +0 -1
- package/dist/admin/components/AssetCard/ImageAssetCard.mjs.map +1 -1
- package/dist/admin/components/AssetCard/UploadingAssetCard.js +3 -4
- package/dist/admin/components/AssetCard/UploadingAssetCard.js.map +1 -1
- package/dist/admin/components/AssetCard/UploadingAssetCard.mjs +4 -5
- package/dist/admin/components/AssetCard/UploadingAssetCard.mjs.map +1 -1
- package/dist/admin/components/AssetCard/VideoAssetCard.js +0 -1
- package/dist/admin/components/AssetCard/VideoAssetCard.js.map +1 -1
- package/dist/admin/components/AssetCard/VideoAssetCard.mjs +0 -1
- package/dist/admin/components/AssetCard/VideoAssetCard.mjs.map +1 -1
- package/dist/admin/components/AssetDialog/AssetDialog.js +0 -1
- package/dist/admin/components/AssetDialog/AssetDialog.js.map +1 -1
- package/dist/admin/components/AssetDialog/AssetDialog.mjs +0 -1
- package/dist/admin/components/AssetDialog/AssetDialog.mjs.map +1 -1
- package/dist/admin/components/AssetDialog/BrowseStep/BrowseStep.js +0 -1
- package/dist/admin/components/AssetDialog/BrowseStep/BrowseStep.js.map +1 -1
- package/dist/admin/components/AssetDialog/BrowseStep/BrowseStep.mjs +0 -1
- package/dist/admin/components/AssetDialog/BrowseStep/BrowseStep.mjs.map +1 -1
- package/dist/admin/components/AssetDialog/BrowseStep/Filters.js +0 -1
- package/dist/admin/components/AssetDialog/BrowseStep/Filters.js.map +1 -1
- package/dist/admin/components/AssetDialog/BrowseStep/Filters.mjs +0 -1
- package/dist/admin/components/AssetDialog/BrowseStep/Filters.mjs.map +1 -1
- package/dist/admin/components/AssetDialog/BrowseStep/SearchAsset/SearchAsset.js +0 -1
- package/dist/admin/components/AssetDialog/BrowseStep/SearchAsset/SearchAsset.js.map +1 -1
- package/dist/admin/components/AssetDialog/BrowseStep/SearchAsset/SearchAsset.mjs +0 -1
- package/dist/admin/components/AssetDialog/BrowseStep/SearchAsset/SearchAsset.mjs.map +1 -1
- package/dist/admin/components/AssetDialog/SelectedStep/SelectedStep.js +0 -1
- package/dist/admin/components/AssetDialog/SelectedStep/SelectedStep.js.map +1 -1
- package/dist/admin/components/AssetDialog/SelectedStep/SelectedStep.mjs +0 -1
- package/dist/admin/components/AssetDialog/SelectedStep/SelectedStep.mjs.map +1 -1
- package/dist/admin/components/Breadcrumbs/CrumbSimpleMenuAsync.js +0 -1
- package/dist/admin/components/Breadcrumbs/CrumbSimpleMenuAsync.js.map +1 -1
- package/dist/admin/components/Breadcrumbs/CrumbSimpleMenuAsync.mjs +0 -1
- package/dist/admin/components/Breadcrumbs/CrumbSimpleMenuAsync.mjs.map +1 -1
- package/dist/admin/components/BulkMoveDialog/BulkMoveDialog.js +0 -1
- package/dist/admin/components/BulkMoveDialog/BulkMoveDialog.js.map +1 -1
- package/dist/admin/components/BulkMoveDialog/BulkMoveDialog.mjs +0 -1
- package/dist/admin/components/BulkMoveDialog/BulkMoveDialog.mjs.map +1 -1
- package/dist/admin/components/CopyLinkButton/CopyLinkButton.js +0 -1
- package/dist/admin/components/CopyLinkButton/CopyLinkButton.js.map +1 -1
- package/dist/admin/components/CopyLinkButton/CopyLinkButton.mjs +0 -1
- package/dist/admin/components/CopyLinkButton/CopyLinkButton.mjs.map +1 -1
- package/dist/admin/components/EditAssetDialog/EditAssetContent.js +0 -1
- package/dist/admin/components/EditAssetDialog/EditAssetContent.js.map +1 -1
- package/dist/admin/components/EditAssetDialog/EditAssetContent.mjs +0 -1
- package/dist/admin/components/EditAssetDialog/EditAssetContent.mjs.map +1 -1
- package/dist/admin/components/EditAssetDialog/PreviewBox/AssetPreview.js +3 -3
- package/dist/admin/components/EditAssetDialog/PreviewBox/AssetPreview.js.map +1 -1
- package/dist/admin/components/EditAssetDialog/PreviewBox/AssetPreview.mjs +4 -4
- package/dist/admin/components/EditAssetDialog/PreviewBox/AssetPreview.mjs.map +1 -1
- package/dist/admin/components/EditAssetDialog/PreviewBox/CroppingActions.js +0 -1
- package/dist/admin/components/EditAssetDialog/PreviewBox/CroppingActions.js.map +1 -1
- package/dist/admin/components/EditAssetDialog/PreviewBox/CroppingActions.mjs +0 -1
- package/dist/admin/components/EditAssetDialog/PreviewBox/CroppingActions.mjs.map +1 -1
- package/dist/admin/components/EditAssetDialog/PreviewBox/FocalPointActions.js +0 -1
- package/dist/admin/components/EditAssetDialog/PreviewBox/FocalPointActions.js.map +1 -1
- package/dist/admin/components/EditAssetDialog/PreviewBox/FocalPointActions.mjs +0 -1
- package/dist/admin/components/EditAssetDialog/PreviewBox/FocalPointActions.mjs.map +1 -1
- package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewBox.js +2 -3
- package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewBox.js.map +1 -1
- package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewBox.mjs +3 -4
- package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewBox.mjs.map +1 -1
- package/dist/admin/components/EditAssetDialog/ReplaceMediaButton.js +0 -1
- package/dist/admin/components/EditAssetDialog/ReplaceMediaButton.js.map +1 -1
- package/dist/admin/components/EditAssetDialog/ReplaceMediaButton.mjs +0 -1
- package/dist/admin/components/EditAssetDialog/ReplaceMediaButton.mjs.map +1 -1
- package/dist/admin/components/EditFolderDialog/EditFolderDialog.js +0 -1
- package/dist/admin/components/EditFolderDialog/EditFolderDialog.js.map +1 -1
- package/dist/admin/components/EditFolderDialog/EditFolderDialog.mjs +0 -1
- package/dist/admin/components/EditFolderDialog/EditFolderDialog.mjs.map +1 -1
- package/dist/admin/components/EditFolderDialog/ModalHeader/ModalHeader.js +0 -1
- package/dist/admin/components/EditFolderDialog/ModalHeader/ModalHeader.js.map +1 -1
- package/dist/admin/components/EditFolderDialog/ModalHeader/ModalHeader.mjs +0 -1
- package/dist/admin/components/EditFolderDialog/ModalHeader/ModalHeader.mjs.map +1 -1
- package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAsset.js +3 -4
- package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAsset.js.map +1 -1
- package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAsset.mjs +4 -5
- package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAsset.mjs.map +1 -1
- package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAssetActions.js +0 -1
- package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAssetActions.js.map +1 -1
- package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAssetActions.mjs +0 -1
- package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAssetActions.mjs.map +1 -1
- package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAssets.js +2 -1
- package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAssets.js.map +1 -1
- package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAssets.mjs +2 -1
- package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAssets.mjs.map +1 -1
- package/dist/admin/components/MediaLibraryInput/Carousel/EmptyStateAsset.js +1 -2
- package/dist/admin/components/MediaLibraryInput/Carousel/EmptyStateAsset.js.map +1 -1
- package/dist/admin/components/MediaLibraryInput/Carousel/EmptyStateAsset.mjs +2 -3
- package/dist/admin/components/MediaLibraryInput/Carousel/EmptyStateAsset.mjs.map +1 -1
- package/dist/admin/components/MediaLibraryInput/MediaLibraryInput.js +2 -2
- package/dist/admin/components/MediaLibraryInput/MediaLibraryInput.js.map +1 -1
- package/dist/admin/components/MediaLibraryInput/MediaLibraryInput.mjs +2 -2
- package/dist/admin/components/MediaLibraryInput/MediaLibraryInput.mjs.map +1 -1
- package/dist/admin/components/SortPicker/SortPicker.js +0 -1
- package/dist/admin/components/SortPicker/SortPicker.js.map +1 -1
- package/dist/admin/components/SortPicker/SortPicker.mjs +0 -1
- package/dist/admin/components/SortPicker/SortPicker.mjs.map +1 -1
- package/dist/admin/components/TableList/CellContent.js +0 -1
- package/dist/admin/components/TableList/CellContent.js.map +1 -1
- package/dist/admin/components/TableList/CellContent.mjs +0 -1
- package/dist/admin/components/TableList/CellContent.mjs.map +1 -1
- package/dist/admin/components/TableList/PreviewCell.js +3 -4
- package/dist/admin/components/TableList/PreviewCell.js.map +1 -1
- package/dist/admin/components/TableList/PreviewCell.mjs +4 -5
- package/dist/admin/components/TableList/PreviewCell.mjs.map +1 -1
- package/dist/admin/components/TableList/TableList.js +0 -1
- package/dist/admin/components/TableList/TableList.js.map +1 -1
- package/dist/admin/components/TableList/TableList.mjs +0 -1
- package/dist/admin/components/TableList/TableList.mjs.map +1 -1
- package/dist/admin/components/TableList/TableRows.js +0 -1
- package/dist/admin/components/TableList/TableRows.js.map +1 -1
- package/dist/admin/components/TableList/TableRows.mjs +0 -1
- package/dist/admin/components/TableList/TableRows.mjs.map +1 -1
- package/dist/admin/components/UploadAssetDialog/AddAssetStep/AddAssetStep.js +0 -1
- package/dist/admin/components/UploadAssetDialog/AddAssetStep/AddAssetStep.js.map +1 -1
- package/dist/admin/components/UploadAssetDialog/AddAssetStep/AddAssetStep.mjs +0 -1
- package/dist/admin/components/UploadAssetDialog/AddAssetStep/AddAssetStep.mjs.map +1 -1
- package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromComputerForm.js +2 -3
- package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromComputerForm.js.map +1 -1
- package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromComputerForm.mjs +3 -4
- package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromComputerForm.mjs.map +1 -1
- package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromUrlForm.js +0 -1
- package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromUrlForm.js.map +1 -1
- package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromUrlForm.mjs +0 -1
- package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromUrlForm.mjs.map +1 -1
- package/dist/admin/components/UploadAssetDialog/PendingAssetStep/PendingAssetStep.js +0 -1
- package/dist/admin/components/UploadAssetDialog/PendingAssetStep/PendingAssetStep.js.map +1 -1
- package/dist/admin/components/UploadAssetDialog/PendingAssetStep/PendingAssetStep.mjs +0 -1
- package/dist/admin/components/UploadAssetDialog/PendingAssetStep/PendingAssetStep.mjs.map +1 -1
- package/dist/admin/constants.js +4 -7
- package/dist/admin/constants.js.map +1 -1
- package/dist/admin/constants.mjs +4 -7
- package/dist/admin/constants.mjs.map +1 -1
- package/dist/admin/enums.js +14 -16
- package/dist/admin/enums.js.map +1 -1
- package/dist/admin/enums.mjs +13 -15
- package/dist/admin/enums.mjs.map +1 -1
- package/dist/admin/future/pages/Assets/AssetsPage.js +125 -122
- package/dist/admin/future/pages/Assets/AssetsPage.js.map +1 -1
- package/dist/admin/future/pages/Assets/AssetsPage.mjs +125 -122
- package/dist/admin/future/pages/Assets/AssetsPage.mjs.map +1 -1
- package/dist/admin/future/pages/Assets/components/AssetDetails/AssetCropEditor.js +700 -0
- package/dist/admin/future/pages/Assets/components/AssetDetails/AssetCropEditor.js.map +1 -0
- package/dist/admin/future/pages/Assets/components/AssetDetails/AssetCropEditor.mjs +678 -0
- package/dist/admin/future/pages/Assets/components/AssetDetails/AssetCropEditor.mjs.map +1 -0
- package/dist/admin/future/pages/Assets/components/AssetDetails/AssetDetailsDrawer.js +134 -17
- package/dist/admin/future/pages/Assets/components/AssetDetails/AssetDetailsDrawer.js.map +1 -1
- package/dist/admin/future/pages/Assets/components/AssetDetails/AssetDetailsDrawer.mjs +137 -20
- package/dist/admin/future/pages/Assets/components/AssetDetails/AssetDetailsDrawer.mjs.map +1 -1
- package/dist/admin/future/pages/Assets/components/AssetDetails/AssetPreview.js +27 -5
- package/dist/admin/future/pages/Assets/components/AssetDetails/AssetPreview.js.map +1 -1
- package/dist/admin/future/pages/Assets/components/AssetDetails/AssetPreview.mjs +27 -5
- package/dist/admin/future/pages/Assets/components/AssetDetails/AssetPreview.mjs.map +1 -1
- package/dist/admin/future/pages/Assets/components/AssetDetails/useCropImg.js +211 -0
- package/dist/admin/future/pages/Assets/components/AssetDetails/useCropImg.js.map +1 -0
- package/dist/admin/future/pages/Assets/components/AssetDetails/useCropImg.mjs +188 -0
- package/dist/admin/future/pages/Assets/components/AssetDetails/useCropImg.mjs.map +1 -0
- package/dist/admin/future/pages/Assets/components/AssetsGrid.js +50 -5
- package/dist/admin/future/pages/Assets/components/AssetsGrid.js.map +1 -1
- package/dist/admin/future/pages/Assets/components/AssetsGrid.mjs +51 -6
- package/dist/admin/future/pages/Assets/components/AssetsGrid.mjs.map +1 -1
- package/dist/admin/future/pages/Assets/components/AssetsTable.js +43 -4
- package/dist/admin/future/pages/Assets/components/AssetsTable.js.map +1 -1
- package/dist/admin/future/pages/Assets/components/AssetsTable.mjs +44 -5
- package/dist/admin/future/pages/Assets/components/AssetsTable.mjs.map +1 -1
- package/dist/admin/future/pages/Assets/components/Dnd/AssetsDndProvider.js +195 -0
- package/dist/admin/future/pages/Assets/components/Dnd/AssetsDndProvider.js.map +1 -0
- package/dist/admin/future/pages/Assets/components/Dnd/AssetsDndProvider.mjs +192 -0
- package/dist/admin/future/pages/Assets/components/Dnd/AssetsDndProvider.mjs.map +1 -0
- package/dist/admin/future/pages/Assets/components/Dnd/DragOverlayChip.js +37 -0
- package/dist/admin/future/pages/Assets/components/Dnd/DragOverlayChip.js.map +1 -0
- package/dist/admin/future/pages/Assets/components/Dnd/DragOverlayChip.mjs +35 -0
- package/dist/admin/future/pages/Assets/components/Dnd/DragOverlayChip.mjs.map +1 -0
- package/dist/admin/future/pages/Assets/components/Dnd/dndIds.js +18 -0
- package/dist/admin/future/pages/Assets/components/Dnd/dndIds.js.map +1 -0
- package/dist/admin/future/pages/Assets/components/Dnd/dndIds.mjs +13 -0
- package/dist/admin/future/pages/Assets/components/Dnd/dndIds.mjs.map +1 -0
- package/dist/admin/future/pages/Assets/components/Dnd/useAssetDnd.js +97 -0
- package/dist/admin/future/pages/Assets/components/Dnd/useAssetDnd.js.map +1 -0
- package/dist/admin/future/pages/Assets/components/Dnd/useAssetDnd.mjs +94 -0
- package/dist/admin/future/pages/Assets/components/Dnd/useAssetDnd.mjs.map +1 -0
- package/dist/admin/future/pages/Assets/components/DropZone/UploadDropZone.js +13 -4
- package/dist/admin/future/pages/Assets/components/DropZone/UploadDropZone.js.map +1 -1
- package/dist/admin/future/pages/Assets/components/DropZone/UploadDropZone.mjs +13 -4
- package/dist/admin/future/pages/Assets/components/DropZone/UploadDropZone.mjs.map +1 -1
- package/dist/admin/future/pages/Assets/components/DropZone/UploadDropZoneContext.js +6 -3
- package/dist/admin/future/pages/Assets/components/DropZone/UploadDropZoneContext.js.map +1 -1
- package/dist/admin/future/pages/Assets/components/DropZone/UploadDropZoneContext.mjs +6 -3
- package/dist/admin/future/pages/Assets/components/DropZone/UploadDropZoneContext.mjs.map +1 -1
- package/dist/admin/future/services/api.js +37 -1
- package/dist/admin/future/services/api.js.map +1 -1
- package/dist/admin/future/services/api.mjs +37 -2
- package/dist/admin/future/services/api.mjs.map +1 -1
- package/dist/admin/future/services/folders.js +36 -5
- package/dist/admin/future/services/folders.js.map +1 -1
- package/dist/admin/future/services/folders.mjs +36 -6
- package/dist/admin/future/services/folders.mjs.map +1 -1
- package/dist/admin/future/utils/buildBulkMovePayload.js +20 -0
- package/dist/admin/future/utils/buildBulkMovePayload.js.map +1 -0
- package/dist/admin/future/utils/buildBulkMovePayload.mjs +18 -0
- package/dist/admin/future/utils/buildBulkMovePayload.mjs.map +1 -0
- package/dist/admin/future/utils/canDropItemOnFolder.js +64 -0
- package/dist/admin/future/utils/canDropItemOnFolder.js.map +1 -0
- package/dist/admin/future/utils/canDropItemOnFolder.mjs +61 -0
- package/dist/admin/future/utils/canDropItemOnFolder.mjs.map +1 -0
- package/dist/admin/future/utils/getAssetIcon.js +4 -4
- package/dist/admin/future/utils/getAssetIcon.js.map +1 -1
- package/dist/admin/future/utils/getAssetIcon.mjs +4 -4
- package/dist/admin/future/utils/getAssetIcon.mjs.map +1 -1
- package/dist/admin/future/utils/getBulkMoveErrorMessage.js +23 -0
- package/dist/admin/future/utils/getBulkMoveErrorMessage.js.map +1 -0
- package/dist/admin/future/utils/getBulkMoveErrorMessage.mjs +21 -0
- package/dist/admin/future/utils/getBulkMoveErrorMessage.mjs.map +1 -0
- package/dist/admin/hooks/useAIMetadataJob.js +0 -1
- package/dist/admin/hooks/useAIMetadataJob.js.map +1 -1
- package/dist/admin/hooks/useAIMetadataJob.mjs +0 -1
- package/dist/admin/hooks/useAIMetadataJob.mjs.map +1 -1
- package/dist/admin/hooks/useAssets.js.map +1 -1
- package/dist/admin/hooks/useAssets.mjs.map +1 -1
- package/dist/admin/hooks/useBulkEdit.js +0 -1
- package/dist/admin/hooks/useBulkEdit.js.map +1 -1
- package/dist/admin/hooks/useBulkEdit.mjs +0 -1
- package/dist/admin/hooks/useBulkEdit.mjs.map +1 -1
- package/dist/admin/hooks/useBulkMove.js +0 -1
- package/dist/admin/hooks/useBulkMove.js.map +1 -1
- package/dist/admin/hooks/useBulkMove.mjs +0 -1
- package/dist/admin/hooks/useBulkMove.mjs.map +1 -1
- package/dist/admin/hooks/useBulkRemove.js +0 -1
- package/dist/admin/hooks/useBulkRemove.js.map +1 -1
- package/dist/admin/hooks/useBulkRemove.mjs +0 -1
- package/dist/admin/hooks/useBulkRemove.mjs.map +1 -1
- package/dist/admin/hooks/useEditAsset.js +0 -1
- package/dist/admin/hooks/useEditAsset.js.map +1 -1
- package/dist/admin/hooks/useEditAsset.mjs +0 -1
- package/dist/admin/hooks/useEditAsset.mjs.map +1 -1
- package/dist/admin/hooks/useEditFolder.js +4 -3
- package/dist/admin/hooks/useEditFolder.js.map +1 -1
- package/dist/admin/hooks/useEditFolder.mjs +4 -3
- package/dist/admin/hooks/useEditFolder.mjs.map +1 -1
- package/dist/admin/hooks/useFolder.js +0 -1
- package/dist/admin/hooks/useFolder.js.map +1 -1
- package/dist/admin/hooks/useFolder.mjs +0 -1
- package/dist/admin/hooks/useFolder.mjs.map +1 -1
- package/dist/admin/hooks/useFolderStructure.js +0 -1
- package/dist/admin/hooks/useFolderStructure.js.map +1 -1
- package/dist/admin/hooks/useFolderStructure.mjs +0 -1
- package/dist/admin/hooks/useFolderStructure.mjs.map +1 -1
- package/dist/admin/hooks/useUpload.js.map +1 -1
- package/dist/admin/hooks/useUpload.mjs.map +1 -1
- package/dist/admin/index.js +0 -1
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/index.mjs +0 -1
- package/dist/admin/index.mjs.map +1 -1
- package/dist/admin/pages/App/App.js +0 -1
- package/dist/admin/pages/App/App.js.map +1 -1
- package/dist/admin/pages/App/App.mjs +0 -1
- package/dist/admin/pages/App/App.mjs.map +1 -1
- package/dist/admin/pages/App/ConfigureTheView/ConfigureTheView.js +0 -1
- package/dist/admin/pages/App/ConfigureTheView/ConfigureTheView.js.map +1 -1
- package/dist/admin/pages/App/ConfigureTheView/ConfigureTheView.mjs +0 -1
- package/dist/admin/pages/App/ConfigureTheView/ConfigureTheView.mjs.map +1 -1
- package/dist/admin/pages/App/ConfigureTheView/components/Settings.js +0 -1
- package/dist/admin/pages/App/ConfigureTheView/components/Settings.js.map +1 -1
- package/dist/admin/pages/App/ConfigureTheView/components/Settings.mjs +0 -1
- package/dist/admin/pages/App/ConfigureTheView/components/Settings.mjs.map +1 -1
- package/dist/admin/pages/App/MediaLibrary.js +0 -1
- package/dist/admin/pages/App/MediaLibrary.js.map +1 -1
- package/dist/admin/pages/App/MediaLibrary.mjs +0 -1
- package/dist/admin/pages/App/MediaLibrary.mjs.map +1 -1
- package/dist/admin/pages/App/components/BulkActions.js +0 -1
- package/dist/admin/pages/App/components/BulkActions.js.map +1 -1
- package/dist/admin/pages/App/components/BulkActions.mjs +0 -1
- package/dist/admin/pages/App/components/BulkActions.mjs.map +1 -1
- package/dist/admin/pages/App/components/EmptyOrNoPermissions.js +0 -1
- package/dist/admin/pages/App/components/EmptyOrNoPermissions.js.map +1 -1
- package/dist/admin/pages/App/components/EmptyOrNoPermissions.mjs +0 -1
- package/dist/admin/pages/App/components/EmptyOrNoPermissions.mjs.map +1 -1
- package/dist/admin/pages/App/components/Filters.js +0 -1
- package/dist/admin/pages/App/components/Filters.js.map +1 -1
- package/dist/admin/pages/App/components/Filters.mjs +0 -1
- package/dist/admin/pages/App/components/Filters.mjs.map +1 -1
- package/dist/admin/pages/App/components/Header.js +0 -1
- package/dist/admin/pages/App/components/Header.js.map +1 -1
- package/dist/admin/pages/App/components/Header.mjs +0 -1
- package/dist/admin/pages/App/components/Header.mjs.map +1 -1
- package/dist/admin/pages/SettingsPage/SettingsPage.js +1 -2
- package/dist/admin/pages/SettingsPage/SettingsPage.js.map +1 -1
- package/dist/admin/pages/SettingsPage/SettingsPage.mjs +1 -2
- package/dist/admin/pages/SettingsPage/SettingsPage.mjs.map +1 -1
- package/dist/admin/src/components/EditAssetDialog/PreviewBox/PreviewComponents.d.ts +11 -12
- package/dist/admin/src/components/EmptyAssets/EmptyAssets.d.ts +0 -1
- package/dist/admin/src/components/FolderCard/contexts/FolderCard.d.ts +2 -3
- package/dist/admin/src/constants.d.ts +5 -4
- package/dist/admin/src/enums.d.ts +14 -12
- package/dist/admin/src/future/pages/Assets/components/AssetDetails/AssetCropEditor.d.ts +10 -0
- package/dist/admin/src/future/pages/Assets/components/AssetDetails/useCropImg.d.ts +48 -0
- package/dist/admin/src/future/pages/Assets/components/Dnd/AssetsDndProvider.d.ts +12 -0
- package/dist/admin/src/future/pages/Assets/components/Dnd/DragOverlayChip.d.ts +6 -0
- package/dist/admin/src/future/pages/Assets/components/Dnd/dndIds.d.ts +4 -0
- package/dist/admin/src/future/pages/Assets/components/Dnd/useAssetDnd.d.ts +51 -0
- package/dist/admin/src/future/services/api.d.ts +24 -6
- package/dist/admin/src/future/services/assets.d.ts +1 -1
- package/dist/admin/src/future/services/folders.d.ts +12 -2
- package/dist/admin/src/future/services/settings.d.ts +1 -1
- package/dist/admin/src/future/store/uploadProgress.d.ts +1 -1
- package/dist/admin/src/future/types/dnd.d.ts +22 -0
- package/dist/admin/src/future/utils/buildBulkMovePayload.d.ts +2 -0
- package/dist/admin/src/future/utils/canDropItemOnFolder.d.ts +9 -0
- package/dist/admin/src/future/utils/getBulkMoveErrorMessage.d.ts +1 -0
- package/dist/admin/src/hooks/useAIMetadataJob.d.ts +1 -1
- package/dist/admin/src/hooks/useBulkEdit.d.ts +14 -14
- package/dist/admin/src/hooks/useBulkMove.d.ts +146 -15
- package/dist/admin/src/hooks/useBulkRemove.d.ts +186 -15
- package/dist/admin/src/hooks/useCropImg.d.ts +2 -2
- package/dist/admin/src/hooks/useEditFolder.d.ts +7 -6
- package/dist/admin/src/hooks/useModalQueryParams.d.ts +5 -5
- package/dist/admin/src/hooks/usePersistentState.d.ts +0 -1
- package/dist/admin/src/hooks/useSettings.d.ts +5 -5
- package/dist/admin/src/hooks/useTracking.d.ts +1 -1
- package/dist/admin/src/pages/App/ConfigureTheView/state/actions.d.ts +1 -1
- package/dist/admin/src/pages/App/ConfigureTheView/state/init.d.ts +1 -1
- package/dist/admin/src/utils/getBreadcrumbDataML.d.ts +1 -1
- package/dist/admin/src/utils/getFolderParents.d.ts +3 -3
- package/dist/admin/src/utils/icons.d.ts +2 -1
- package/dist/admin/src/utils/rawFileToAsset.d.ts +1 -1
- package/dist/admin/src/utils/urlsToAssets.d.ts +2 -10
- package/dist/admin/translations/en.json.js +28 -0
- package/dist/admin/translations/en.json.js.map +1 -1
- package/dist/admin/translations/en.json.mjs +28 -0
- package/dist/admin/translations/en.json.mjs.map +1 -1
- package/dist/admin/translations/ja.json.js +175 -0
- package/dist/admin/translations/ja.json.js.map +1 -1
- package/dist/admin/translations/ja.json.mjs +175 -0
- package/dist/admin/translations/ja.json.mjs.map +1 -1
- package/dist/admin/translations/pl.json.js +54 -29
- package/dist/admin/translations/pl.json.js.map +1 -1
- package/dist/admin/translations/pl.json.mjs +54 -29
- package/dist/admin/translations/pl.json.mjs.map +1 -1
- package/dist/admin/utils/icons.js +5 -5
- package/dist/admin/utils/icons.js.map +1 -1
- package/dist/admin/utils/icons.mjs +6 -6
- package/dist/admin/utils/icons.mjs.map +1 -1
- package/dist/admin/utils/typeFromMime.js +9 -9
- package/dist/admin/utils/typeFromMime.js.map +1 -1
- package/dist/admin/utils/typeFromMime.mjs +10 -10
- package/dist/admin/utils/typeFromMime.mjs.map +1 -1
- package/dist/admin/utils/urlsToAssets.js +1 -2
- package/dist/admin/utils/urlsToAssets.js.map +1 -1
- package/dist/admin/utils/urlsToAssets.mjs +1 -2
- package/dist/admin/utils/urlsToAssets.mjs.map +1 -1
- package/dist/server/controllers/admin-upload.js +3 -2
- package/dist/server/controllers/admin-upload.js.map +1 -1
- package/dist/server/controllers/admin-upload.mjs +3 -2
- package/dist/server/controllers/admin-upload.mjs.map +1 -1
- package/dist/server/controllers/content-api.js +6 -5
- package/dist/server/controllers/content-api.js.map +1 -1
- package/dist/server/controllers/content-api.mjs +6 -5
- package/dist/server/controllers/content-api.mjs.map +1 -1
- package/dist/server/src/controllers/admin-file.d.ts +4 -12
- package/dist/server/src/controllers/admin-file.d.ts.map +1 -1
- package/dist/server/src/controllers/admin-folder.d.ts +2 -2
- package/dist/server/src/controllers/admin-settings.d.ts +2 -2
- package/dist/server/src/controllers/admin-upload.d.ts +3 -3
- package/dist/server/src/controllers/admin-upload.d.ts.map +1 -1
- package/dist/server/src/controllers/content-api.d.ts +2 -2
- package/dist/server/src/controllers/content-api.d.ts.map +1 -1
- package/dist/server/src/controllers/index.d.ts +14 -23
- package/dist/server/src/controllers/index.d.ts.map +1 -1
- package/dist/server/src/controllers/utils/find-entity-and-check-permissions.d.ts.map +1 -1
- package/dist/server/src/controllers/utils/folders.d.ts.map +1 -1
- package/dist/server/src/controllers/validation/admin/configureView.d.ts +1 -1
- package/dist/server/src/controllers/validation/admin/folder-file.d.ts +1 -1
- package/dist/server/src/controllers/validation/admin/folder-file.d.ts.map +1 -1
- package/dist/server/src/controllers/validation/admin/folder.d.ts +2 -2
- package/dist/server/src/controllers/validation/admin/folder.d.ts.map +1 -1
- package/dist/server/src/controllers/validation/admin/settings.d.ts +1 -1
- package/dist/server/src/controllers/validation/admin/upload.d.ts +1 -1
- package/dist/server/src/controllers/validation/admin/upload.d.ts.map +1 -1
- package/dist/server/src/controllers/validation/admin/utils.d.ts.map +1 -1
- package/dist/server/src/controllers/validation/content-api/upload.d.ts.map +1 -1
- package/dist/server/src/controllers/view-configuration.d.ts +1 -1
- package/dist/server/src/graphql.d.ts.map +1 -1
- package/dist/server/src/index.d.ts +36 -53
- package/dist/server/src/index.d.ts.map +1 -1
- package/dist/server/src/middlewares/upload.d.ts.map +1 -1
- package/dist/server/src/services/ai-metadata-jobs.d.ts +1 -1
- package/dist/server/src/services/ai-metadata-jobs.d.ts.map +1 -1
- package/dist/server/src/services/ai-metadata.d.ts.map +1 -1
- package/dist/server/src/services/extensions/utils.d.ts.map +1 -1
- package/dist/server/src/services/file.d.ts +2 -2
- package/dist/server/src/services/file.d.ts.map +1 -1
- package/dist/server/src/services/folder.d.ts +1 -1
- package/dist/server/src/services/folder.d.ts.map +1 -1
- package/dist/server/src/services/image-manipulation.d.ts.map +1 -1
- package/dist/server/src/services/index.d.ts +22 -30
- package/dist/server/src/services/index.d.ts.map +1 -1
- package/dist/server/src/services/metrics.d.ts.map +1 -1
- package/dist/server/src/services/provider.d.ts.map +1 -1
- package/dist/server/src/services/upload.d.ts +1 -1
- package/dist/server/src/services/upload.d.ts.map +1 -1
- package/dist/server/src/services/weekly-metrics.d.ts.map +1 -1
- package/dist/server/src/types.d.ts +4 -3
- package/dist/server/src/types.d.ts.map +1 -1
- package/dist/server/src/utils/cron.d.ts.map +1 -1
- package/dist/server/src/utils/index.d.ts.map +1 -1
- package/dist/server/src/utils/mime-validation.d.ts.map +1 -1
- package/dist/server/utils/mime-validation.js +3 -1
- package/dist/server/utils/mime-validation.js.map +1 -1
- package/dist/server/utils/mime-validation.mjs +3 -1
- package/dist/server/utils/mime-validation.mjs.map +1 -1
- package/package.json +11 -10
- package/dist/admin/future/enums.js +0 -12
- package/dist/admin/future/enums.js.map +0 -1
- package/dist/admin/future/enums.mjs +0 -10
- package/dist/admin/future/enums.mjs.map +0 -1
- package/dist/admin/src/future/enums.d.ts +0 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssetsTable.js","sources":["../../../../../../admin/src/future/pages/Assets/components/AssetsTable.tsx"],"sourcesContent":["import { useIsMobile } from '@strapi/admin/strapi-admin';\nimport {\n Flex,\n IconButton,\n RawTable,\n RawTbody,\n RawTd,\n RawTh,\n RawThead,\n RawTr,\n Typography,\n VisuallyHidden,\n} from '@strapi/design-system';\nimport { Folder as FolderIcon, More } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { formatBytes } from '../../../utils/files';\nimport { getAssetIcon } from '../../../utils/getAssetIcon';\nimport { getTranslationKey } from '../../../utils/translations';\nimport { TABLE_HEADERS } from '../constants';\nimport { useFolderNavigation } from '../hooks/useFolderNavigation';\n\nimport type { File } from '../../../../../../shared/contracts/files';\nimport type { Folder } from '../../../../../../shared/contracts/folders';\n\nconst StyledTable = styled(RawTable)`\n width: 100%;\n border-collapse: separate;\n border-spacing: 0;\n border: 1px solid ${({ theme }) => theme.colors.neutral150};\n border-radius: 4px;\n overflow: hidden;\n`;\n\nconst StyledThead = styled(RawThead)`\n background: ${({ theme }) => theme.colors.neutral100};\n\n tr {\n border-bottom: 1px solid ${({ theme }) => theme.colors.neutral150};\n }\n`;\n\nconst StyledTh = styled(RawTh)`\n height: 40px;\n padding: 0 ${({ theme }) => theme.spaces[4]};\n text-align: left;\n`;\n\nconst StyledTd = styled(RawTd)`\n padding: 0 ${({ theme }) => theme.spaces[4]};\n border-bottom: 1px solid ${({ theme }) => theme.colors.neutral150};\n`;\n\nconst StyledTr = styled(RawTr)`\n height: 48px;\n background: ${({ theme }) => theme.colors.neutral0};\n cursor: pointer;\n\n &:hover {\n background: ${({ theme }) => theme.colors.primary100};\n }\n\n &:focus-visible {\n outline: 2px solid ${({ theme }) => theme.colors.primary600};\n outline-offset: -2px;\n }\n\n &:last-child {\n ${StyledTd} {\n border-bottom: 0;\n }\n }\n`;\n\nconst StyledBodyTd = styled(RawTd)`\n padding: ${({ theme }) => theme.spaces[4]};\n border-bottom: 1px solid ${({ theme }) => theme.colors.neutral150};\n`;\n\ninterface AssetPreviewCellProps {\n asset: File;\n}\n\nconst AssetPreviewCell = ({ asset }: AssetPreviewCellProps) => {\n const { ext, mime } = asset;\n\n const DocIcon = getAssetIcon(mime, ext);\n\n return (\n <Flex\n justifyContent=\"center\"\n alignItems=\"center\"\n borderRadius=\"4px\"\n color=\"neutral500\"\n width=\"3.2rem\"\n height=\"3.2rem\"\n shrink={0}\n >\n <DocIcon width={20} height={20} />\n </Flex>\n );\n};\n\ninterface AssetRowProps {\n asset: File;\n onAssetItemClick: (assetId: number) => void;\n}\n\nconst AssetRow = ({ asset, onAssetItemClick }: AssetRowProps) => {\n const isMobile = useIsMobile();\n const { formatDate, formatMessage } = useIntl();\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n onAssetItemClick(asset.id);\n }\n };\n\n return (\n <StyledTr\n tabIndex={0}\n role=\"row\"\n onClick={() => onAssetItemClick(asset.id)}\n onKeyDown={handleKeyDown}\n >\n <StyledTd>\n <Flex gap={3} alignItems=\"center\">\n <AssetPreviewCell asset={asset} />\n <Flex direction=\"column\" alignItems=\"flex-start\">\n <Typography textColor=\"neutral800\" fontWeight=\"semiBold\" ellipsis>\n {asset.name}\n </Typography>\n {isMobile && (\n <Typography textColor=\"neutral600\" variant=\"pi\">\n {asset.size ? formatBytes(asset.size, 1) : '-'}\n </Typography>\n )}\n </Flex>\n </Flex>\n </StyledTd>\n {!isMobile && (\n <>\n <StyledTd>\n <Typography textColor=\"neutral600\">\n {asset.createdAt ? formatDate(new Date(asset.createdAt), { dateStyle: 'long' }) : '-'}\n </Typography>\n </StyledTd>\n <StyledTd>\n <Typography textColor=\"neutral600\">\n {asset.updatedAt ? formatDate(new Date(asset.updatedAt), { dateStyle: 'long' }) : '-'}\n </Typography>\n </StyledTd>\n <StyledTd>\n <Typography textColor=\"neutral600\">\n {asset.size ? formatBytes(asset.size, 1) : '-'}\n </Typography>\n </StyledTd>\n </>\n )}\n <StyledTd>\n <Flex justifyContent=\"flex-end\">\n <IconButton\n label={formatMessage({\n id: getTranslationKey('control-card.more-actions'),\n defaultMessage: 'More actions',\n })}\n variant=\"ghost\"\n >\n <More />\n </IconButton>\n </Flex>\n </StyledTd>\n </StyledTr>\n );\n};\n\nconst FolderTr = styled(StyledTr)`\n cursor: pointer;\n\n &:hover {\n background: ${({ theme }) => theme.colors.primary100};\n }\n`;\n\ninterface FolderRowProps {\n folder: Folder;\n}\n\nconst FolderRow = ({ folder }: FolderRowProps) => {\n const isMobile = useIsMobile();\n const { formatDate, formatMessage } = useIntl();\n const { navigateToFolder } = useFolderNavigation();\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n navigateToFolder(folder);\n }\n };\n\n return (\n <FolderTr\n tabIndex={0}\n role=\"row\"\n onClick={() => navigateToFolder(folder)}\n onKeyDown={handleKeyDown}\n >\n <StyledTd>\n <Flex gap={3} alignItems=\"center\">\n <Flex\n justifyContent=\"center\"\n alignItems=\"center\"\n borderRadius=\"4px\"\n color=\"neutral600\"\n width=\"3.2rem\"\n height=\"3.2rem\"\n shrink={0}\n >\n <FolderIcon width={20} height={20} />\n </Flex>\n <Typography textColor=\"neutral800\" fontWeight=\"semiBold\" ellipsis>\n {folder.name}\n </Typography>\n </Flex>\n </StyledTd>\n {!isMobile && (\n <>\n <StyledTd>\n <Typography textColor=\"neutral600\">\n {folder.createdAt\n ? formatDate(new Date(folder.createdAt), { dateStyle: 'long' })\n : '-'}\n </Typography>\n </StyledTd>\n <StyledTd>\n <Typography textColor=\"neutral600\">\n {folder.updatedAt\n ? formatDate(new Date(folder.updatedAt), { dateStyle: 'long' })\n : '-'}\n </Typography>\n </StyledTd>\n <StyledTd>\n <Typography textColor=\"neutral600\">-</Typography>\n </StyledTd>\n </>\n )}\n <StyledTd>\n <Flex justifyContent=\"flex-end\">\n <IconButton\n label={formatMessage({\n id: getTranslationKey('control-card.more-actions'),\n defaultMessage: 'More actions',\n })}\n variant=\"ghost\"\n onClick={(e: React.MouseEvent) => e.stopPropagation()}\n >\n <More />\n </IconButton>\n </Flex>\n </StyledTd>\n </FolderTr>\n );\n};\n\ninterface AssetsTableProps {\n assets: File[];\n folders?: Folder[];\n onAssetItemClick: (assetId: number) => void;\n}\n\nexport const AssetsTable = ({ assets, folders = [], onAssetItemClick }: AssetsTableProps) => {\n const isMobile = useIsMobile();\n const { formatMessage } = useIntl();\n\n const visibleHeaders = isMobile\n ? TABLE_HEADERS.filter((h) => h.name === 'name' || h.name === 'actions')\n : TABLE_HEADERS;\n\n const totalRows = folders.length + assets.length;\n\n return (\n <StyledTable colCount={visibleHeaders.length} rowCount={totalRows + 1}>\n <StyledThead>\n <RawTr>\n {visibleHeaders.map((header) => {\n const tableHeaderLabel = formatMessage(header.label);\n const isVisuallyHidden = 'isVisuallyHidden' in header && header.isVisuallyHidden;\n\n if (isVisuallyHidden) {\n return (\n <StyledTh key={header.name}>\n <VisuallyHidden>\n {formatMessage({\n id: getTranslationKey('table.header.actions'),\n defaultMessage: 'actions',\n })}\n </VisuallyHidden>\n </StyledTh>\n );\n }\n\n return (\n <StyledTh key={header.name}>\n <Typography textColor=\"neutral600\" variant=\"sigma\">\n {tableHeaderLabel}\n </Typography>\n </StyledTh>\n );\n })}\n </RawTr>\n </StyledThead>\n <RawTbody>\n {totalRows === 0 ? (\n <RawTr>\n <StyledBodyTd colSpan={visibleHeaders.length}>\n <Typography textColor=\"neutral600\">\n {formatMessage({\n id: 'app.components.EmptyStateLayout.content-document',\n defaultMessage: 'No content found',\n })}\n </Typography>\n </StyledBodyTd>\n </RawTr>\n ) : (\n <>\n {folders.map((folder) => (\n <FolderRow key={`folder-${folder.id}`} folder={folder} />\n ))}\n {assets.map((asset) => (\n <AssetRow key={asset.id} asset={asset} onAssetItemClick={onAssetItemClick} />\n ))}\n </>\n )}\n </RawTbody>\n </StyledTable>\n );\n};\n"],"names":["StyledTable","styled","RawTable","theme","colors","neutral150","StyledThead","RawThead","neutral100","StyledTh","RawTh","spaces","StyledTd","RawTd","StyledTr","RawTr","neutral0","primary100","primary600","StyledBodyTd","AssetPreviewCell","asset","ext","mime","DocIcon","getAssetIcon","_jsx","Flex","justifyContent","alignItems","borderRadius","color","width","height","shrink","AssetRow","onAssetItemClick","isMobile","useIsMobile","formatDate","formatMessage","useIntl","handleKeyDown","e","key","preventDefault","id","_jsxs","tabIndex","role","onClick","onKeyDown","gap","direction","Typography","textColor","fontWeight","ellipsis","name","variant","size","formatBytes","_Fragment","createdAt","Date","dateStyle","updatedAt","IconButton","label","getTranslationKey","defaultMessage","More","FolderTr","FolderRow","folder","navigateToFolder","useFolderNavigation","FolderIcon","stopPropagation","AssetsTable","assets","folders","visibleHeaders","TABLE_HEADERS","filter","h","totalRows","length","colCount","rowCount","map","header","tableHeaderLabel","isVisuallyHidden","VisuallyHidden","RawTbody","colSpan"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AssetsTable.js","sources":["../../../../../../admin/src/future/pages/Assets/components/AssetsTable.tsx"],"sourcesContent":["import { useIsMobile } from '@strapi/admin/strapi-admin';\nimport {\n Flex,\n IconButton,\n RawTable,\n RawTbody,\n RawTd,\n RawTh,\n RawThead,\n RawTr,\n Typography,\n VisuallyHidden,\n} from '@strapi/design-system';\nimport { Folder as FolderIcon, More } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { styled, css } from 'styled-components';\n\nimport { formatBytes } from '../../../utils/files';\nimport { getAssetIcon } from '../../../utils/getAssetIcon';\nimport { getTranslationKey } from '../../../utils/translations';\nimport { TABLE_HEADERS } from '../constants';\nimport { useFolderNavigation } from '../hooks/useFolderNavigation';\n\nimport { useAssetsDndOptional } from './Dnd/AssetsDndProvider';\nimport { useFileDraggable, useFolderDraggableDroppable } from './Dnd/useAssetDnd';\n\nimport type { File } from '../../../../../../shared/contracts/files';\nimport type { Folder } from '../../../../../../shared/contracts/folders';\n\nconst StyledTable = styled(RawTable)`\n width: 100%;\n border-collapse: separate;\n border-spacing: 0;\n border: 1px solid ${({ theme }) => theme.colors.neutral150};\n border-radius: 4px;\n overflow: hidden;\n`;\n\nconst StyledThead = styled(RawThead)`\n background: ${({ theme }) => theme.colors.neutral100};\n\n tr {\n border-bottom: 1px solid ${({ theme }) => theme.colors.neutral150};\n }\n`;\n\nconst StyledTh = styled(RawTh)`\n height: 40px;\n padding: 0 ${({ theme }) => theme.spaces[4]};\n text-align: left;\n`;\n\nconst StyledTd = styled(RawTd)`\n padding: 0 ${({ theme }) => theme.spaces[4]};\n border-bottom: 1px solid ${({ theme }) => theme.colors.neutral150};\n`;\n\nconst StyledTr = styled.tr<{\n $isDragging?: boolean;\n $isMovePending?: boolean;\n $isValidDropTarget?: boolean;\n $isInvalidDropTarget?: boolean;\n}>`\n height: 48px;\n background: ${({ theme }) => theme.colors.neutral0};\n cursor: ${({ $isMovePending, $isInvalidDropTarget }) => {\n if ($isMovePending) {\n return 'wait';\n }\n\n return $isInvalidDropTarget ? 'not-allowed' : 'pointer';\n }};\n opacity: ${({ $isDragging }) => ($isDragging ? 0.4 : 1)};\n pointer-events: ${({ $isMovePending }) => ($isMovePending ? 'none' : 'auto')};\n\n ${({ $isValidDropTarget, theme }) =>\n $isValidDropTarget &&\n css`\n background: ${theme.colors.primary100};\n outline: 1px dashed ${theme.colors.primary600};\n outline-offset: -1px;\n `}\n\n &:hover {\n background: ${({ theme }) => theme.colors.primary100};\n }\n\n &:focus-visible {\n outline: 2px solid ${({ theme }) => theme.colors.primary600};\n outline-offset: -2px;\n }\n\n &:last-child {\n ${StyledTd} {\n border-bottom: 0;\n }\n }\n`;\n\nconst StyledBodyTd = styled(RawTd)`\n padding: ${({ theme }) => theme.spaces[4]};\n border-bottom: 1px solid ${({ theme }) => theme.colors.neutral150};\n`;\n\ninterface AssetPreviewCellProps {\n asset: File;\n}\n\nconst AssetPreviewCell = ({ asset }: AssetPreviewCellProps) => {\n const { ext, mime } = asset;\n\n const DocIcon = getAssetIcon(mime, ext);\n\n return (\n <Flex\n justifyContent=\"center\"\n alignItems=\"center\"\n borderRadius=\"4px\"\n color=\"neutral500\"\n width=\"3.2rem\"\n height=\"3.2rem\"\n shrink={0}\n >\n <DocIcon width={20} height={20} />\n </Flex>\n );\n};\n\ninterface AssetRowProps {\n asset: File;\n onAssetItemClick: (assetId: number) => void;\n}\n\nconst AssetRow = ({ asset, onAssetItemClick }: AssetRowProps) => {\n const isMobile = useIsMobile();\n const { formatDate, formatMessage } = useIntl();\n const { isMovePending } = useAssetsDndOptional() ?? { isMovePending: false };\n const { attributes, listeners, setNodeRef, isDragging } = useFileDraggable(asset);\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n onAssetItemClick(asset.id);\n }\n };\n\n return (\n <StyledTr\n ref={setNodeRef}\n {...attributes}\n {...listeners}\n $isDragging={isDragging}\n $isMovePending={isMovePending}\n tabIndex={0}\n role=\"row\"\n onDragStart={(e) => e.preventDefault()}\n onClick={() => onAssetItemClick(asset.id)}\n onKeyDown={handleKeyDown}\n >\n <StyledTd>\n <Flex gap={3} alignItems=\"center\">\n <AssetPreviewCell asset={asset} />\n <Flex direction=\"column\" alignItems=\"flex-start\">\n <Typography textColor=\"neutral800\" fontWeight=\"semiBold\" ellipsis>\n {asset.name}\n </Typography>\n {isMobile && (\n <Typography textColor=\"neutral600\" variant=\"pi\">\n {asset.size ? formatBytes(asset.size, 1) : '-'}\n </Typography>\n )}\n </Flex>\n </Flex>\n </StyledTd>\n {!isMobile && (\n <>\n <StyledTd>\n <Typography textColor=\"neutral600\">\n {asset.createdAt ? formatDate(new Date(asset.createdAt), { dateStyle: 'long' }) : '-'}\n </Typography>\n </StyledTd>\n <StyledTd>\n <Typography textColor=\"neutral600\">\n {asset.updatedAt ? formatDate(new Date(asset.updatedAt), { dateStyle: 'long' }) : '-'}\n </Typography>\n </StyledTd>\n <StyledTd>\n <Typography textColor=\"neutral600\">\n {asset.size ? formatBytes(asset.size, 1) : '-'}\n </Typography>\n </StyledTd>\n </>\n )}\n <StyledTd>\n <Flex justifyContent=\"flex-end\">\n <IconButton\n label={formatMessage({\n id: getTranslationKey('control-card.more-actions'),\n defaultMessage: 'More actions',\n })}\n variant=\"ghost\"\n onClick={(e: React.MouseEvent) => e.stopPropagation()}\n >\n <More />\n </IconButton>\n </Flex>\n </StyledTd>\n </StyledTr>\n );\n};\n\nconst FolderTr = styled(StyledTr)`\n &:hover {\n background: ${({ theme }) => theme.colors.primary100};\n }\n`;\n\ninterface FolderRowProps {\n folder: Folder;\n}\n\nconst FolderRow = ({ folder }: FolderRowProps) => {\n const isMobile = useIsMobile();\n const { formatDate, formatMessage } = useIntl();\n const { navigateToFolder } = useFolderNavigation();\n const { isMovePending } = useAssetsDndOptional() ?? { isMovePending: false };\n const {\n draggable: { attributes, listeners, setNodeRef: setDragRef, isDragging },\n droppable: { setNodeRef: setDropRef },\n showValidDropHighlight,\n showInvalidDropCursor,\n } = useFolderDraggableDroppable(folder);\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n navigateToFolder(folder);\n }\n };\n\n return (\n <FolderTr\n ref={(node) => {\n setDragRef(node);\n setDropRef(node);\n }}\n {...attributes}\n {...listeners}\n $isDragging={isDragging}\n $isMovePending={isMovePending}\n $isValidDropTarget={showValidDropHighlight}\n $isInvalidDropTarget={showInvalidDropCursor}\n tabIndex={0}\n role=\"row\"\n onDragStart={(e) => e.preventDefault()}\n onClick={() => navigateToFolder(folder)}\n onKeyDown={handleKeyDown}\n >\n <StyledTd>\n <Flex gap={3} alignItems=\"center\">\n <Flex\n justifyContent=\"center\"\n alignItems=\"center\"\n borderRadius=\"4px\"\n color=\"neutral600\"\n width=\"3.2rem\"\n height=\"3.2rem\"\n shrink={0}\n >\n <FolderIcon width={20} height={20} />\n </Flex>\n <Typography textColor=\"neutral800\" fontWeight=\"semiBold\" ellipsis>\n {folder.name}\n </Typography>\n </Flex>\n </StyledTd>\n {!isMobile && (\n <>\n <StyledTd>\n <Typography textColor=\"neutral600\">\n {folder.createdAt\n ? formatDate(new Date(folder.createdAt), { dateStyle: 'long' })\n : '-'}\n </Typography>\n </StyledTd>\n <StyledTd>\n <Typography textColor=\"neutral600\">\n {folder.updatedAt\n ? formatDate(new Date(folder.updatedAt), { dateStyle: 'long' })\n : '-'}\n </Typography>\n </StyledTd>\n <StyledTd>\n <Typography textColor=\"neutral600\">-</Typography>\n </StyledTd>\n </>\n )}\n <StyledTd>\n <Flex justifyContent=\"flex-end\">\n <IconButton\n label={formatMessage({\n id: getTranslationKey('control-card.more-actions'),\n defaultMessage: 'More actions',\n })}\n variant=\"ghost\"\n onClick={(e: React.MouseEvent) => e.stopPropagation()}\n >\n <More />\n </IconButton>\n </Flex>\n </StyledTd>\n </FolderTr>\n );\n};\n\ninterface AssetsTableProps {\n assets: File[];\n folders?: Folder[];\n onAssetItemClick: (assetId: number) => void;\n}\n\nexport const AssetsTable = ({ assets, folders = [], onAssetItemClick }: AssetsTableProps) => {\n const isMobile = useIsMobile();\n const { formatMessage } = useIntl();\n\n const visibleHeaders = isMobile\n ? TABLE_HEADERS.filter((h) => h.name === 'name' || h.name === 'actions')\n : TABLE_HEADERS;\n\n const totalRows = folders.length + assets.length;\n\n return (\n <StyledTable colCount={visibleHeaders.length} rowCount={totalRows + 1}>\n <StyledThead>\n <RawTr>\n {visibleHeaders.map((header) => {\n const tableHeaderLabel = formatMessage(header.label);\n const isVisuallyHidden = 'isVisuallyHidden' in header && header.isVisuallyHidden;\n\n if (isVisuallyHidden) {\n return (\n <StyledTh key={header.name}>\n <VisuallyHidden>\n {formatMessage({\n id: getTranslationKey('table.header.actions'),\n defaultMessage: 'actions',\n })}\n </VisuallyHidden>\n </StyledTh>\n );\n }\n\n return (\n <StyledTh key={header.name}>\n <Typography textColor=\"neutral600\" variant=\"sigma\">\n {tableHeaderLabel}\n </Typography>\n </StyledTh>\n );\n })}\n </RawTr>\n </StyledThead>\n <RawTbody>\n {totalRows === 0 ? (\n <RawTr>\n <StyledBodyTd colSpan={visibleHeaders.length}>\n <Typography textColor=\"neutral600\">\n {formatMessage({\n id: 'app.components.EmptyStateLayout.content-document',\n defaultMessage: 'No content found',\n })}\n </Typography>\n </StyledBodyTd>\n </RawTr>\n ) : (\n <>\n {folders.map((folder) => (\n <FolderRow key={`folder-${folder.id}`} folder={folder} />\n ))}\n {assets.map((asset) => (\n <AssetRow key={asset.id} asset={asset} onAssetItemClick={onAssetItemClick} />\n ))}\n </>\n )}\n </RawTbody>\n </StyledTable>\n );\n};\n"],"names":["StyledTable","styled","RawTable","theme","colors","neutral150","StyledThead","RawThead","neutral100","StyledTh","RawTh","spaces","StyledTd","RawTd","StyledTr","tr","neutral0","$isMovePending","$isInvalidDropTarget","$isDragging","$isValidDropTarget","css","primary100","primary600","StyledBodyTd","AssetPreviewCell","asset","ext","mime","DocIcon","getAssetIcon","_jsx","Flex","justifyContent","alignItems","borderRadius","color","width","height","shrink","AssetRow","onAssetItemClick","isMobile","useIsMobile","formatDate","formatMessage","useIntl","isMovePending","useAssetsDndOptional","attributes","listeners","setNodeRef","isDragging","useFileDraggable","handleKeyDown","e","key","preventDefault","id","_jsxs","ref","tabIndex","role","onDragStart","onClick","onKeyDown","gap","direction","Typography","textColor","fontWeight","ellipsis","name","variant","size","formatBytes","_Fragment","createdAt","Date","dateStyle","updatedAt","IconButton","label","getTranslationKey","defaultMessage","stopPropagation","More","FolderTr","FolderRow","folder","navigateToFolder","useFolderNavigation","draggable","setDragRef","droppable","setDropRef","showValidDropHighlight","showInvalidDropCursor","useFolderDraggableDroppable","node","FolderIcon","AssetsTable","assets","folders","visibleHeaders","TABLE_HEADERS","filter","h","totalRows","length","colCount","rowCount","RawTr","map","header","tableHeaderLabel","isVisuallyHidden","VisuallyHidden","RawTbody","colSpan"],"mappings":"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"}
|
|
@@ -3,12 +3,14 @@ import { useIsMobile } from '@strapi/admin/strapi-admin';
|
|
|
3
3
|
import { RawTr, VisuallyHidden, Typography, RawTbody, RawTable, RawThead, RawTh, RawTd, Flex, IconButton } from '@strapi/design-system';
|
|
4
4
|
import { Folder, More } from '@strapi/icons';
|
|
5
5
|
import { useIntl } from 'react-intl';
|
|
6
|
-
import { styled } from 'styled-components';
|
|
6
|
+
import { styled, css } from 'styled-components';
|
|
7
7
|
import { formatBytes } from '../../../utils/files.mjs';
|
|
8
8
|
import { getAssetIcon } from '../../../utils/getAssetIcon.mjs';
|
|
9
9
|
import { getTranslationKey } from '../../../utils/translations.mjs';
|
|
10
10
|
import { TABLE_HEADERS } from '../constants.mjs';
|
|
11
11
|
import { useFolderNavigation } from '../hooks/useFolderNavigation.mjs';
|
|
12
|
+
import { useAssetsDndOptional } from './Dnd/AssetsDndProvider.mjs';
|
|
13
|
+
import { useFolderDraggableDroppable, useFileDraggable } from './Dnd/useAssetDnd.mjs';
|
|
12
14
|
|
|
13
15
|
const StyledTable = styled(RawTable)`
|
|
14
16
|
width: 100%;
|
|
@@ -34,10 +36,23 @@ const StyledTd = styled(RawTd)`
|
|
|
34
36
|
padding: 0 ${({ theme })=>theme.spaces[4]};
|
|
35
37
|
border-bottom: 1px solid ${({ theme })=>theme.colors.neutral150};
|
|
36
38
|
`;
|
|
37
|
-
const StyledTr = styled
|
|
39
|
+
const StyledTr = styled.tr`
|
|
38
40
|
height: 48px;
|
|
39
41
|
background: ${({ theme })=>theme.colors.neutral0};
|
|
40
|
-
cursor:
|
|
42
|
+
cursor: ${({ $isMovePending, $isInvalidDropTarget })=>{
|
|
43
|
+
if ($isMovePending) {
|
|
44
|
+
return 'wait';
|
|
45
|
+
}
|
|
46
|
+
return $isInvalidDropTarget ? 'not-allowed' : 'pointer';
|
|
47
|
+
}};
|
|
48
|
+
opacity: ${({ $isDragging })=>$isDragging ? 0.4 : 1};
|
|
49
|
+
pointer-events: ${({ $isMovePending })=>$isMovePending ? 'none' : 'auto'};
|
|
50
|
+
|
|
51
|
+
${({ $isValidDropTarget, theme })=>$isValidDropTarget && css`
|
|
52
|
+
background: ${theme.colors.primary100};
|
|
53
|
+
outline: 1px dashed ${theme.colors.primary600};
|
|
54
|
+
outline-offset: -1px;
|
|
55
|
+
`}
|
|
41
56
|
|
|
42
57
|
&:hover {
|
|
43
58
|
background: ${({ theme })=>theme.colors.primary100};
|
|
@@ -78,6 +93,10 @@ const AssetPreviewCell = ({ asset })=>{
|
|
|
78
93
|
const AssetRow = ({ asset, onAssetItemClick })=>{
|
|
79
94
|
const isMobile = useIsMobile();
|
|
80
95
|
const { formatDate, formatMessage } = useIntl();
|
|
96
|
+
const { isMovePending } = useAssetsDndOptional() ?? {
|
|
97
|
+
isMovePending: false
|
|
98
|
+
};
|
|
99
|
+
const { attributes, listeners, setNodeRef, isDragging } = useFileDraggable(asset);
|
|
81
100
|
const handleKeyDown = (e)=>{
|
|
82
101
|
if (e.key === 'Enter' || e.key === ' ') {
|
|
83
102
|
e.preventDefault();
|
|
@@ -85,8 +104,14 @@ const AssetRow = ({ asset, onAssetItemClick })=>{
|
|
|
85
104
|
}
|
|
86
105
|
};
|
|
87
106
|
return /*#__PURE__*/ jsxs(StyledTr, {
|
|
107
|
+
ref: setNodeRef,
|
|
108
|
+
...attributes,
|
|
109
|
+
...listeners,
|
|
110
|
+
$isDragging: isDragging,
|
|
111
|
+
$isMovePending: isMovePending,
|
|
88
112
|
tabIndex: 0,
|
|
89
113
|
role: "row",
|
|
114
|
+
onDragStart: (e)=>e.preventDefault(),
|
|
90
115
|
onClick: ()=>onAssetItemClick(asset.id),
|
|
91
116
|
onKeyDown: handleKeyDown,
|
|
92
117
|
children: [
|
|
@@ -153,6 +178,7 @@ const AssetRow = ({ asset, onAssetItemClick })=>{
|
|
|
153
178
|
defaultMessage: 'More actions'
|
|
154
179
|
}),
|
|
155
180
|
variant: "ghost",
|
|
181
|
+
onClick: (e)=>e.stopPropagation(),
|
|
156
182
|
children: /*#__PURE__*/ jsx(More, {})
|
|
157
183
|
})
|
|
158
184
|
})
|
|
@@ -161,8 +187,6 @@ const AssetRow = ({ asset, onAssetItemClick })=>{
|
|
|
161
187
|
});
|
|
162
188
|
};
|
|
163
189
|
const FolderTr = styled(StyledTr)`
|
|
164
|
-
cursor: pointer;
|
|
165
|
-
|
|
166
190
|
&:hover {
|
|
167
191
|
background: ${({ theme })=>theme.colors.primary100};
|
|
168
192
|
}
|
|
@@ -171,6 +195,10 @@ const FolderRow = ({ folder })=>{
|
|
|
171
195
|
const isMobile = useIsMobile();
|
|
172
196
|
const { formatDate, formatMessage } = useIntl();
|
|
173
197
|
const { navigateToFolder } = useFolderNavigation();
|
|
198
|
+
const { isMovePending } = useAssetsDndOptional() ?? {
|
|
199
|
+
isMovePending: false
|
|
200
|
+
};
|
|
201
|
+
const { draggable: { attributes, listeners, setNodeRef: setDragRef, isDragging }, droppable: { setNodeRef: setDropRef }, showValidDropHighlight, showInvalidDropCursor } = useFolderDraggableDroppable(folder);
|
|
174
202
|
const handleKeyDown = (e)=>{
|
|
175
203
|
if (e.key === 'Enter' || e.key === ' ') {
|
|
176
204
|
e.preventDefault();
|
|
@@ -178,8 +206,19 @@ const FolderRow = ({ folder })=>{
|
|
|
178
206
|
}
|
|
179
207
|
};
|
|
180
208
|
return /*#__PURE__*/ jsxs(FolderTr, {
|
|
209
|
+
ref: (node)=>{
|
|
210
|
+
setDragRef(node);
|
|
211
|
+
setDropRef(node);
|
|
212
|
+
},
|
|
213
|
+
...attributes,
|
|
214
|
+
...listeners,
|
|
215
|
+
$isDragging: isDragging,
|
|
216
|
+
$isMovePending: isMovePending,
|
|
217
|
+
$isValidDropTarget: showValidDropHighlight,
|
|
218
|
+
$isInvalidDropTarget: showInvalidDropCursor,
|
|
181
219
|
tabIndex: 0,
|
|
182
220
|
role: "row",
|
|
221
|
+
onDragStart: (e)=>e.preventDefault(),
|
|
183
222
|
onClick: ()=>navigateToFolder(folder),
|
|
184
223
|
onKeyDown: handleKeyDown,
|
|
185
224
|
children: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssetsTable.mjs","sources":["../../../../../../admin/src/future/pages/Assets/components/AssetsTable.tsx"],"sourcesContent":["import { useIsMobile } from '@strapi/admin/strapi-admin';\nimport {\n Flex,\n IconButton,\n RawTable,\n RawTbody,\n RawTd,\n RawTh,\n RawThead,\n RawTr,\n Typography,\n VisuallyHidden,\n} from '@strapi/design-system';\nimport { Folder as FolderIcon, More } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { formatBytes } from '../../../utils/files';\nimport { getAssetIcon } from '../../../utils/getAssetIcon';\nimport { getTranslationKey } from '../../../utils/translations';\nimport { TABLE_HEADERS } from '../constants';\nimport { useFolderNavigation } from '../hooks/useFolderNavigation';\n\nimport type { File } from '../../../../../../shared/contracts/files';\nimport type { Folder } from '../../../../../../shared/contracts/folders';\n\nconst StyledTable = styled(RawTable)`\n width: 100%;\n border-collapse: separate;\n border-spacing: 0;\n border: 1px solid ${({ theme }) => theme.colors.neutral150};\n border-radius: 4px;\n overflow: hidden;\n`;\n\nconst StyledThead = styled(RawThead)`\n background: ${({ theme }) => theme.colors.neutral100};\n\n tr {\n border-bottom: 1px solid ${({ theme }) => theme.colors.neutral150};\n }\n`;\n\nconst StyledTh = styled(RawTh)`\n height: 40px;\n padding: 0 ${({ theme }) => theme.spaces[4]};\n text-align: left;\n`;\n\nconst StyledTd = styled(RawTd)`\n padding: 0 ${({ theme }) => theme.spaces[4]};\n border-bottom: 1px solid ${({ theme }) => theme.colors.neutral150};\n`;\n\nconst StyledTr = styled(RawTr)`\n height: 48px;\n background: ${({ theme }) => theme.colors.neutral0};\n cursor: pointer;\n\n &:hover {\n background: ${({ theme }) => theme.colors.primary100};\n }\n\n &:focus-visible {\n outline: 2px solid ${({ theme }) => theme.colors.primary600};\n outline-offset: -2px;\n }\n\n &:last-child {\n ${StyledTd} {\n border-bottom: 0;\n }\n }\n`;\n\nconst StyledBodyTd = styled(RawTd)`\n padding: ${({ theme }) => theme.spaces[4]};\n border-bottom: 1px solid ${({ theme }) => theme.colors.neutral150};\n`;\n\ninterface AssetPreviewCellProps {\n asset: File;\n}\n\nconst AssetPreviewCell = ({ asset }: AssetPreviewCellProps) => {\n const { ext, mime } = asset;\n\n const DocIcon = getAssetIcon(mime, ext);\n\n return (\n <Flex\n justifyContent=\"center\"\n alignItems=\"center\"\n borderRadius=\"4px\"\n color=\"neutral500\"\n width=\"3.2rem\"\n height=\"3.2rem\"\n shrink={0}\n >\n <DocIcon width={20} height={20} />\n </Flex>\n );\n};\n\ninterface AssetRowProps {\n asset: File;\n onAssetItemClick: (assetId: number) => void;\n}\n\nconst AssetRow = ({ asset, onAssetItemClick }: AssetRowProps) => {\n const isMobile = useIsMobile();\n const { formatDate, formatMessage } = useIntl();\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n onAssetItemClick(asset.id);\n }\n };\n\n return (\n <StyledTr\n tabIndex={0}\n role=\"row\"\n onClick={() => onAssetItemClick(asset.id)}\n onKeyDown={handleKeyDown}\n >\n <StyledTd>\n <Flex gap={3} alignItems=\"center\">\n <AssetPreviewCell asset={asset} />\n <Flex direction=\"column\" alignItems=\"flex-start\">\n <Typography textColor=\"neutral800\" fontWeight=\"semiBold\" ellipsis>\n {asset.name}\n </Typography>\n {isMobile && (\n <Typography textColor=\"neutral600\" variant=\"pi\">\n {asset.size ? formatBytes(asset.size, 1) : '-'}\n </Typography>\n )}\n </Flex>\n </Flex>\n </StyledTd>\n {!isMobile && (\n <>\n <StyledTd>\n <Typography textColor=\"neutral600\">\n {asset.createdAt ? formatDate(new Date(asset.createdAt), { dateStyle: 'long' }) : '-'}\n </Typography>\n </StyledTd>\n <StyledTd>\n <Typography textColor=\"neutral600\">\n {asset.updatedAt ? formatDate(new Date(asset.updatedAt), { dateStyle: 'long' }) : '-'}\n </Typography>\n </StyledTd>\n <StyledTd>\n <Typography textColor=\"neutral600\">\n {asset.size ? formatBytes(asset.size, 1) : '-'}\n </Typography>\n </StyledTd>\n </>\n )}\n <StyledTd>\n <Flex justifyContent=\"flex-end\">\n <IconButton\n label={formatMessage({\n id: getTranslationKey('control-card.more-actions'),\n defaultMessage: 'More actions',\n })}\n variant=\"ghost\"\n >\n <More />\n </IconButton>\n </Flex>\n </StyledTd>\n </StyledTr>\n );\n};\n\nconst FolderTr = styled(StyledTr)`\n cursor: pointer;\n\n &:hover {\n background: ${({ theme }) => theme.colors.primary100};\n }\n`;\n\ninterface FolderRowProps {\n folder: Folder;\n}\n\nconst FolderRow = ({ folder }: FolderRowProps) => {\n const isMobile = useIsMobile();\n const { formatDate, formatMessage } = useIntl();\n const { navigateToFolder } = useFolderNavigation();\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n navigateToFolder(folder);\n }\n };\n\n return (\n <FolderTr\n tabIndex={0}\n role=\"row\"\n onClick={() => navigateToFolder(folder)}\n onKeyDown={handleKeyDown}\n >\n <StyledTd>\n <Flex gap={3} alignItems=\"center\">\n <Flex\n justifyContent=\"center\"\n alignItems=\"center\"\n borderRadius=\"4px\"\n color=\"neutral600\"\n width=\"3.2rem\"\n height=\"3.2rem\"\n shrink={0}\n >\n <FolderIcon width={20} height={20} />\n </Flex>\n <Typography textColor=\"neutral800\" fontWeight=\"semiBold\" ellipsis>\n {folder.name}\n </Typography>\n </Flex>\n </StyledTd>\n {!isMobile && (\n <>\n <StyledTd>\n <Typography textColor=\"neutral600\">\n {folder.createdAt\n ? formatDate(new Date(folder.createdAt), { dateStyle: 'long' })\n : '-'}\n </Typography>\n </StyledTd>\n <StyledTd>\n <Typography textColor=\"neutral600\">\n {folder.updatedAt\n ? formatDate(new Date(folder.updatedAt), { dateStyle: 'long' })\n : '-'}\n </Typography>\n </StyledTd>\n <StyledTd>\n <Typography textColor=\"neutral600\">-</Typography>\n </StyledTd>\n </>\n )}\n <StyledTd>\n <Flex justifyContent=\"flex-end\">\n <IconButton\n label={formatMessage({\n id: getTranslationKey('control-card.more-actions'),\n defaultMessage: 'More actions',\n })}\n variant=\"ghost\"\n onClick={(e: React.MouseEvent) => e.stopPropagation()}\n >\n <More />\n </IconButton>\n </Flex>\n </StyledTd>\n </FolderTr>\n );\n};\n\ninterface AssetsTableProps {\n assets: File[];\n folders?: Folder[];\n onAssetItemClick: (assetId: number) => void;\n}\n\nexport const AssetsTable = ({ assets, folders = [], onAssetItemClick }: AssetsTableProps) => {\n const isMobile = useIsMobile();\n const { formatMessage } = useIntl();\n\n const visibleHeaders = isMobile\n ? TABLE_HEADERS.filter((h) => h.name === 'name' || h.name === 'actions')\n : TABLE_HEADERS;\n\n const totalRows = folders.length + assets.length;\n\n return (\n <StyledTable colCount={visibleHeaders.length} rowCount={totalRows + 1}>\n <StyledThead>\n <RawTr>\n {visibleHeaders.map((header) => {\n const tableHeaderLabel = formatMessage(header.label);\n const isVisuallyHidden = 'isVisuallyHidden' in header && header.isVisuallyHidden;\n\n if (isVisuallyHidden) {\n return (\n <StyledTh key={header.name}>\n <VisuallyHidden>\n {formatMessage({\n id: getTranslationKey('table.header.actions'),\n defaultMessage: 'actions',\n })}\n </VisuallyHidden>\n </StyledTh>\n );\n }\n\n return (\n <StyledTh key={header.name}>\n <Typography textColor=\"neutral600\" variant=\"sigma\">\n {tableHeaderLabel}\n </Typography>\n </StyledTh>\n );\n })}\n </RawTr>\n </StyledThead>\n <RawTbody>\n {totalRows === 0 ? (\n <RawTr>\n <StyledBodyTd colSpan={visibleHeaders.length}>\n <Typography textColor=\"neutral600\">\n {formatMessage({\n id: 'app.components.EmptyStateLayout.content-document',\n defaultMessage: 'No content found',\n })}\n </Typography>\n </StyledBodyTd>\n </RawTr>\n ) : (\n <>\n {folders.map((folder) => (\n <FolderRow key={`folder-${folder.id}`} folder={folder} />\n ))}\n {assets.map((asset) => (\n <AssetRow key={asset.id} asset={asset} onAssetItemClick={onAssetItemClick} />\n ))}\n </>\n )}\n </RawTbody>\n </StyledTable>\n );\n};\n"],"names":["StyledTable","styled","RawTable","theme","colors","neutral150","StyledThead","RawThead","neutral100","StyledTh","RawTh","spaces","StyledTd","RawTd","StyledTr","RawTr","neutral0","primary100","primary600","StyledBodyTd","AssetPreviewCell","asset","ext","mime","DocIcon","getAssetIcon","_jsx","Flex","justifyContent","alignItems","borderRadius","color","width","height","shrink","AssetRow","onAssetItemClick","isMobile","useIsMobile","formatDate","formatMessage","useIntl","handleKeyDown","e","key","preventDefault","id","_jsxs","tabIndex","role","onClick","onKeyDown","gap","direction","Typography","textColor","fontWeight","ellipsis","name","variant","size","formatBytes","_Fragment","createdAt","Date","dateStyle","updatedAt","IconButton","label","getTranslationKey","defaultMessage","More","FolderTr","FolderRow","folder","navigateToFolder","useFolderNavigation","FolderIcon","stopPropagation","AssetsTable","assets","folders","visibleHeaders","TABLE_HEADERS","filter","h","totalRows","length","colCount","rowCount","map","header","tableHeaderLabel","isVisuallyHidden","VisuallyHidden","RawTbody","colSpan"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AssetsTable.mjs","sources":["../../../../../../admin/src/future/pages/Assets/components/AssetsTable.tsx"],"sourcesContent":["import { useIsMobile } from '@strapi/admin/strapi-admin';\nimport {\n Flex,\n IconButton,\n RawTable,\n RawTbody,\n RawTd,\n RawTh,\n RawThead,\n RawTr,\n Typography,\n VisuallyHidden,\n} from '@strapi/design-system';\nimport { Folder as FolderIcon, More } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { styled, css } from 'styled-components';\n\nimport { formatBytes } from '../../../utils/files';\nimport { getAssetIcon } from '../../../utils/getAssetIcon';\nimport { getTranslationKey } from '../../../utils/translations';\nimport { TABLE_HEADERS } from '../constants';\nimport { useFolderNavigation } from '../hooks/useFolderNavigation';\n\nimport { useAssetsDndOptional } from './Dnd/AssetsDndProvider';\nimport { useFileDraggable, useFolderDraggableDroppable } from './Dnd/useAssetDnd';\n\nimport type { File } from '../../../../../../shared/contracts/files';\nimport type { Folder } from '../../../../../../shared/contracts/folders';\n\nconst StyledTable = styled(RawTable)`\n width: 100%;\n border-collapse: separate;\n border-spacing: 0;\n border: 1px solid ${({ theme }) => theme.colors.neutral150};\n border-radius: 4px;\n overflow: hidden;\n`;\n\nconst StyledThead = styled(RawThead)`\n background: ${({ theme }) => theme.colors.neutral100};\n\n tr {\n border-bottom: 1px solid ${({ theme }) => theme.colors.neutral150};\n }\n`;\n\nconst StyledTh = styled(RawTh)`\n height: 40px;\n padding: 0 ${({ theme }) => theme.spaces[4]};\n text-align: left;\n`;\n\nconst StyledTd = styled(RawTd)`\n padding: 0 ${({ theme }) => theme.spaces[4]};\n border-bottom: 1px solid ${({ theme }) => theme.colors.neutral150};\n`;\n\nconst StyledTr = styled.tr<{\n $isDragging?: boolean;\n $isMovePending?: boolean;\n $isValidDropTarget?: boolean;\n $isInvalidDropTarget?: boolean;\n}>`\n height: 48px;\n background: ${({ theme }) => theme.colors.neutral0};\n cursor: ${({ $isMovePending, $isInvalidDropTarget }) => {\n if ($isMovePending) {\n return 'wait';\n }\n\n return $isInvalidDropTarget ? 'not-allowed' : 'pointer';\n }};\n opacity: ${({ $isDragging }) => ($isDragging ? 0.4 : 1)};\n pointer-events: ${({ $isMovePending }) => ($isMovePending ? 'none' : 'auto')};\n\n ${({ $isValidDropTarget, theme }) =>\n $isValidDropTarget &&\n css`\n background: ${theme.colors.primary100};\n outline: 1px dashed ${theme.colors.primary600};\n outline-offset: -1px;\n `}\n\n &:hover {\n background: ${({ theme }) => theme.colors.primary100};\n }\n\n &:focus-visible {\n outline: 2px solid ${({ theme }) => theme.colors.primary600};\n outline-offset: -2px;\n }\n\n &:last-child {\n ${StyledTd} {\n border-bottom: 0;\n }\n }\n`;\n\nconst StyledBodyTd = styled(RawTd)`\n padding: ${({ theme }) => theme.spaces[4]};\n border-bottom: 1px solid ${({ theme }) => theme.colors.neutral150};\n`;\n\ninterface AssetPreviewCellProps {\n asset: File;\n}\n\nconst AssetPreviewCell = ({ asset }: AssetPreviewCellProps) => {\n const { ext, mime } = asset;\n\n const DocIcon = getAssetIcon(mime, ext);\n\n return (\n <Flex\n justifyContent=\"center\"\n alignItems=\"center\"\n borderRadius=\"4px\"\n color=\"neutral500\"\n width=\"3.2rem\"\n height=\"3.2rem\"\n shrink={0}\n >\n <DocIcon width={20} height={20} />\n </Flex>\n );\n};\n\ninterface AssetRowProps {\n asset: File;\n onAssetItemClick: (assetId: number) => void;\n}\n\nconst AssetRow = ({ asset, onAssetItemClick }: AssetRowProps) => {\n const isMobile = useIsMobile();\n const { formatDate, formatMessage } = useIntl();\n const { isMovePending } = useAssetsDndOptional() ?? { isMovePending: false };\n const { attributes, listeners, setNodeRef, isDragging } = useFileDraggable(asset);\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n onAssetItemClick(asset.id);\n }\n };\n\n return (\n <StyledTr\n ref={setNodeRef}\n {...attributes}\n {...listeners}\n $isDragging={isDragging}\n $isMovePending={isMovePending}\n tabIndex={0}\n role=\"row\"\n onDragStart={(e) => e.preventDefault()}\n onClick={() => onAssetItemClick(asset.id)}\n onKeyDown={handleKeyDown}\n >\n <StyledTd>\n <Flex gap={3} alignItems=\"center\">\n <AssetPreviewCell asset={asset} />\n <Flex direction=\"column\" alignItems=\"flex-start\">\n <Typography textColor=\"neutral800\" fontWeight=\"semiBold\" ellipsis>\n {asset.name}\n </Typography>\n {isMobile && (\n <Typography textColor=\"neutral600\" variant=\"pi\">\n {asset.size ? formatBytes(asset.size, 1) : '-'}\n </Typography>\n )}\n </Flex>\n </Flex>\n </StyledTd>\n {!isMobile && (\n <>\n <StyledTd>\n <Typography textColor=\"neutral600\">\n {asset.createdAt ? formatDate(new Date(asset.createdAt), { dateStyle: 'long' }) : '-'}\n </Typography>\n </StyledTd>\n <StyledTd>\n <Typography textColor=\"neutral600\">\n {asset.updatedAt ? formatDate(new Date(asset.updatedAt), { dateStyle: 'long' }) : '-'}\n </Typography>\n </StyledTd>\n <StyledTd>\n <Typography textColor=\"neutral600\">\n {asset.size ? formatBytes(asset.size, 1) : '-'}\n </Typography>\n </StyledTd>\n </>\n )}\n <StyledTd>\n <Flex justifyContent=\"flex-end\">\n <IconButton\n label={formatMessage({\n id: getTranslationKey('control-card.more-actions'),\n defaultMessage: 'More actions',\n })}\n variant=\"ghost\"\n onClick={(e: React.MouseEvent) => e.stopPropagation()}\n >\n <More />\n </IconButton>\n </Flex>\n </StyledTd>\n </StyledTr>\n );\n};\n\nconst FolderTr = styled(StyledTr)`\n &:hover {\n background: ${({ theme }) => theme.colors.primary100};\n }\n`;\n\ninterface FolderRowProps {\n folder: Folder;\n}\n\nconst FolderRow = ({ folder }: FolderRowProps) => {\n const isMobile = useIsMobile();\n const { formatDate, formatMessage } = useIntl();\n const { navigateToFolder } = useFolderNavigation();\n const { isMovePending } = useAssetsDndOptional() ?? { isMovePending: false };\n const {\n draggable: { attributes, listeners, setNodeRef: setDragRef, isDragging },\n droppable: { setNodeRef: setDropRef },\n showValidDropHighlight,\n showInvalidDropCursor,\n } = useFolderDraggableDroppable(folder);\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n navigateToFolder(folder);\n }\n };\n\n return (\n <FolderTr\n ref={(node) => {\n setDragRef(node);\n setDropRef(node);\n }}\n {...attributes}\n {...listeners}\n $isDragging={isDragging}\n $isMovePending={isMovePending}\n $isValidDropTarget={showValidDropHighlight}\n $isInvalidDropTarget={showInvalidDropCursor}\n tabIndex={0}\n role=\"row\"\n onDragStart={(e) => e.preventDefault()}\n onClick={() => navigateToFolder(folder)}\n onKeyDown={handleKeyDown}\n >\n <StyledTd>\n <Flex gap={3} alignItems=\"center\">\n <Flex\n justifyContent=\"center\"\n alignItems=\"center\"\n borderRadius=\"4px\"\n color=\"neutral600\"\n width=\"3.2rem\"\n height=\"3.2rem\"\n shrink={0}\n >\n <FolderIcon width={20} height={20} />\n </Flex>\n <Typography textColor=\"neutral800\" fontWeight=\"semiBold\" ellipsis>\n {folder.name}\n </Typography>\n </Flex>\n </StyledTd>\n {!isMobile && (\n <>\n <StyledTd>\n <Typography textColor=\"neutral600\">\n {folder.createdAt\n ? formatDate(new Date(folder.createdAt), { dateStyle: 'long' })\n : '-'}\n </Typography>\n </StyledTd>\n <StyledTd>\n <Typography textColor=\"neutral600\">\n {folder.updatedAt\n ? formatDate(new Date(folder.updatedAt), { dateStyle: 'long' })\n : '-'}\n </Typography>\n </StyledTd>\n <StyledTd>\n <Typography textColor=\"neutral600\">-</Typography>\n </StyledTd>\n </>\n )}\n <StyledTd>\n <Flex justifyContent=\"flex-end\">\n <IconButton\n label={formatMessage({\n id: getTranslationKey('control-card.more-actions'),\n defaultMessage: 'More actions',\n })}\n variant=\"ghost\"\n onClick={(e: React.MouseEvent) => e.stopPropagation()}\n >\n <More />\n </IconButton>\n </Flex>\n </StyledTd>\n </FolderTr>\n );\n};\n\ninterface AssetsTableProps {\n assets: File[];\n folders?: Folder[];\n onAssetItemClick: (assetId: number) => void;\n}\n\nexport const AssetsTable = ({ assets, folders = [], onAssetItemClick }: AssetsTableProps) => {\n const isMobile = useIsMobile();\n const { formatMessage } = useIntl();\n\n const visibleHeaders = isMobile\n ? TABLE_HEADERS.filter((h) => h.name === 'name' || h.name === 'actions')\n : TABLE_HEADERS;\n\n const totalRows = folders.length + assets.length;\n\n return (\n <StyledTable colCount={visibleHeaders.length} rowCount={totalRows + 1}>\n <StyledThead>\n <RawTr>\n {visibleHeaders.map((header) => {\n const tableHeaderLabel = formatMessage(header.label);\n const isVisuallyHidden = 'isVisuallyHidden' in header && header.isVisuallyHidden;\n\n if (isVisuallyHidden) {\n return (\n <StyledTh key={header.name}>\n <VisuallyHidden>\n {formatMessage({\n id: getTranslationKey('table.header.actions'),\n defaultMessage: 'actions',\n })}\n </VisuallyHidden>\n </StyledTh>\n );\n }\n\n return (\n <StyledTh key={header.name}>\n <Typography textColor=\"neutral600\" variant=\"sigma\">\n {tableHeaderLabel}\n </Typography>\n </StyledTh>\n );\n })}\n </RawTr>\n </StyledThead>\n <RawTbody>\n {totalRows === 0 ? (\n <RawTr>\n <StyledBodyTd colSpan={visibleHeaders.length}>\n <Typography textColor=\"neutral600\">\n {formatMessage({\n id: 'app.components.EmptyStateLayout.content-document',\n defaultMessage: 'No content found',\n })}\n </Typography>\n </StyledBodyTd>\n </RawTr>\n ) : (\n <>\n {folders.map((folder) => (\n <FolderRow key={`folder-${folder.id}`} folder={folder} />\n ))}\n {assets.map((asset) => (\n <AssetRow key={asset.id} asset={asset} onAssetItemClick={onAssetItemClick} />\n ))}\n </>\n )}\n </RawTbody>\n </StyledTable>\n );\n};\n"],"names":["StyledTable","styled","RawTable","theme","colors","neutral150","StyledThead","RawThead","neutral100","StyledTh","RawTh","spaces","StyledTd","RawTd","StyledTr","tr","neutral0","$isMovePending","$isInvalidDropTarget","$isDragging","$isValidDropTarget","css","primary100","primary600","StyledBodyTd","AssetPreviewCell","asset","ext","mime","DocIcon","getAssetIcon","_jsx","Flex","justifyContent","alignItems","borderRadius","color","width","height","shrink","AssetRow","onAssetItemClick","isMobile","useIsMobile","formatDate","formatMessage","useIntl","isMovePending","useAssetsDndOptional","attributes","listeners","setNodeRef","isDragging","useFileDraggable","handleKeyDown","e","key","preventDefault","id","_jsxs","ref","tabIndex","role","onDragStart","onClick","onKeyDown","gap","direction","Typography","textColor","fontWeight","ellipsis","name","variant","size","formatBytes","_Fragment","createdAt","Date","dateStyle","updatedAt","IconButton","label","getTranslationKey","defaultMessage","stopPropagation","More","FolderTr","FolderRow","folder","navigateToFolder","useFolderNavigation","draggable","setDragRef","droppable","setDropRef","showValidDropHighlight","showInvalidDropCursor","useFolderDraggableDroppable","node","FolderIcon","AssetsTable","assets","folders","visibleHeaders","TABLE_HEADERS","filter","h","totalRows","length","colCount","rowCount","RawTr","map","header","tableHeaderLabel","isVisuallyHidden","VisuallyHidden","RawTbody","colSpan"],"mappings":"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"}
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var React = require('react');
|
|
5
|
+
var core = require('@dnd-kit/core');
|
|
6
|
+
var strapiAdmin = require('@strapi/admin/strapi-admin');
|
|
7
|
+
var designSystem = require('@strapi/design-system');
|
|
8
|
+
var reactIntl = require('react-intl');
|
|
9
|
+
var folders = require('../../../../services/folders.js');
|
|
10
|
+
var buildBulkMovePayload = require('../../../../utils/buildBulkMovePayload.js');
|
|
11
|
+
var canDropItemOnFolder = require('../../../../utils/canDropItemOnFolder.js');
|
|
12
|
+
var getBulkMoveErrorMessage = require('../../../../utils/getBulkMoveErrorMessage.js');
|
|
13
|
+
var translations = require('../../../../utils/translations.js');
|
|
14
|
+
var dndIds = require('./dndIds.js');
|
|
15
|
+
var DragOverlayChip = require('./DragOverlayChip.js');
|
|
16
|
+
|
|
17
|
+
const AssetsDndContext = /*#__PURE__*/ React.createContext(null);
|
|
18
|
+
const useAssetsDndOptional = ()=>React.useContext(AssetsDndContext);
|
|
19
|
+
const getDragItems = (activeData)=>{
|
|
20
|
+
if (!activeData) {
|
|
21
|
+
return [];
|
|
22
|
+
}
|
|
23
|
+
// TODO(CMS-433): include selectedItems from active data for multi-drag payload members.
|
|
24
|
+
return [
|
|
25
|
+
activeData
|
|
26
|
+
];
|
|
27
|
+
};
|
|
28
|
+
const AssetsDndProvider = ({ children })=>{
|
|
29
|
+
const { formatMessage } = reactIntl.useIntl();
|
|
30
|
+
const { toggleNotification } = strapiAdmin.useNotification();
|
|
31
|
+
const { data: folderStructure = [] } = folders.useGetFolderStructureQuery();
|
|
32
|
+
const [bulkMove, { isLoading: isMovePending }] = folders.useBulkMoveMutation();
|
|
33
|
+
const [activeItem, setActiveItem] = React.useState(null);
|
|
34
|
+
const [liveAnnouncement, setLiveAnnouncement] = React.useState('');
|
|
35
|
+
const announceToLiveRegion = React.useCallback((message)=>{
|
|
36
|
+
setLiveAnnouncement('');
|
|
37
|
+
requestAnimationFrame(()=>setLiveAnnouncement(message));
|
|
38
|
+
}, []);
|
|
39
|
+
const sensors = core.useSensors(core.useSensor(core.PointerSensor, {
|
|
40
|
+
activationConstraint: {
|
|
41
|
+
distance: 8
|
|
42
|
+
}
|
|
43
|
+
}));
|
|
44
|
+
const contextValue = React.useMemo(()=>({
|
|
45
|
+
isInternalDragActive: activeItem !== null,
|
|
46
|
+
isMovePending
|
|
47
|
+
}), [
|
|
48
|
+
activeItem,
|
|
49
|
+
isMovePending
|
|
50
|
+
]);
|
|
51
|
+
const handleDragStart = React.useCallback((event)=>{
|
|
52
|
+
const data = event.active.data.current;
|
|
53
|
+
setActiveItem(data ?? null);
|
|
54
|
+
}, []);
|
|
55
|
+
const handleDragEnd = React.useCallback(async (event)=>{
|
|
56
|
+
const { active, over } = event;
|
|
57
|
+
setActiveItem(null);
|
|
58
|
+
if (isMovePending || !over) {
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
const targetFolderId = dndIds.parseFolderTargetId(over.id);
|
|
62
|
+
const activeData = active.data.current;
|
|
63
|
+
if (targetFolderId == null || !activeData) {
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
const items = getDragItems(activeData);
|
|
67
|
+
if (!canDropItemOnFolder.canDropItemOnFolder({
|
|
68
|
+
items,
|
|
69
|
+
targetFolderId,
|
|
70
|
+
folderStructure
|
|
71
|
+
})) {
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
const payload = buildBulkMovePayload.buildBulkMovePayload(items);
|
|
75
|
+
const successMessage = formatMessage({
|
|
76
|
+
id: translations.getTranslationKey('modal.move.success-label'),
|
|
77
|
+
defaultMessage: 'Elements have been moved successfully.'
|
|
78
|
+
});
|
|
79
|
+
const errorFallback = formatMessage({
|
|
80
|
+
id: translations.getTranslationKey('modal.move.error-label'),
|
|
81
|
+
defaultMessage: 'An error occurred while moving the elements.'
|
|
82
|
+
});
|
|
83
|
+
try {
|
|
84
|
+
await bulkMove({
|
|
85
|
+
...payload,
|
|
86
|
+
destinationFolderId: targetFolderId
|
|
87
|
+
}).unwrap();
|
|
88
|
+
announceToLiveRegion(successMessage);
|
|
89
|
+
toggleNotification({
|
|
90
|
+
type: 'success',
|
|
91
|
+
message: successMessage
|
|
92
|
+
});
|
|
93
|
+
} catch (error) {
|
|
94
|
+
const errorMessage = getBulkMoveErrorMessage.getBulkMoveErrorMessage(error, errorFallback);
|
|
95
|
+
announceToLiveRegion(formatMessage({
|
|
96
|
+
id: translations.getTranslationKey('dnd.announce.move-failure'),
|
|
97
|
+
defaultMessage: 'Move failed. {message}'
|
|
98
|
+
}, {
|
|
99
|
+
message: errorMessage
|
|
100
|
+
}));
|
|
101
|
+
toggleNotification({
|
|
102
|
+
type: 'danger',
|
|
103
|
+
message: errorMessage
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
}, [
|
|
107
|
+
announceToLiveRegion,
|
|
108
|
+
bulkMove,
|
|
109
|
+
folderStructure,
|
|
110
|
+
formatMessage,
|
|
111
|
+
isMovePending,
|
|
112
|
+
toggleNotification
|
|
113
|
+
]);
|
|
114
|
+
const handleDragCancel = React.useCallback(()=>{
|
|
115
|
+
setActiveItem(null);
|
|
116
|
+
}, []);
|
|
117
|
+
const announcements = React.useMemo(()=>({
|
|
118
|
+
onDragStart: ({ active })=>{
|
|
119
|
+
const data = active.data.current;
|
|
120
|
+
return data ? formatMessage({
|
|
121
|
+
id: translations.getTranslationKey('dnd.announce.drag-start'),
|
|
122
|
+
defaultMessage: 'Picked up {name}. Drop on a folder to move.'
|
|
123
|
+
}, {
|
|
124
|
+
name: data.name
|
|
125
|
+
}) : '';
|
|
126
|
+
},
|
|
127
|
+
onDragOver: ()=>'',
|
|
128
|
+
onDragEnd: ({ active, over })=>{
|
|
129
|
+
if (!over) {
|
|
130
|
+
return formatMessage({
|
|
131
|
+
id: translations.getTranslationKey('dnd.announce.cancel'),
|
|
132
|
+
defaultMessage: 'Drag cancelled.'
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
const targetFolderId = dndIds.parseFolderTargetId(over.id);
|
|
136
|
+
const activeData = active.data.current;
|
|
137
|
+
if (targetFolderId == null || !activeData) {
|
|
138
|
+
return '';
|
|
139
|
+
}
|
|
140
|
+
const items = getDragItems(activeData);
|
|
141
|
+
if (!canDropItemOnFolder.canDropItemOnFolder({
|
|
142
|
+
items,
|
|
143
|
+
targetFolderId,
|
|
144
|
+
folderStructure
|
|
145
|
+
})) {
|
|
146
|
+
return formatMessage({
|
|
147
|
+
id: translations.getTranslationKey('dnd.announce.invalid-drop'),
|
|
148
|
+
defaultMessage: 'Cannot move item to this folder.'
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
return '';
|
|
152
|
+
},
|
|
153
|
+
onDragCancel: ()=>formatMessage({
|
|
154
|
+
id: translations.getTranslationKey('dnd.announce.cancel'),
|
|
155
|
+
defaultMessage: 'Drag cancelled.'
|
|
156
|
+
})
|
|
157
|
+
}), [
|
|
158
|
+
folderStructure,
|
|
159
|
+
formatMessage
|
|
160
|
+
]);
|
|
161
|
+
return /*#__PURE__*/ jsxRuntime.jsx(AssetsDndContext.Provider, {
|
|
162
|
+
value: contextValue,
|
|
163
|
+
children: /*#__PURE__*/ jsxRuntime.jsxs(core.DndContext, {
|
|
164
|
+
sensors: sensors,
|
|
165
|
+
collisionDetection: core.pointerWithin,
|
|
166
|
+
onDragStart: handleDragStart,
|
|
167
|
+
onDragEnd: handleDragEnd,
|
|
168
|
+
onDragCancel: handleDragCancel,
|
|
169
|
+
accessibility: {
|
|
170
|
+
announcements
|
|
171
|
+
},
|
|
172
|
+
children: [
|
|
173
|
+
/*#__PURE__*/ jsxRuntime.jsx(designSystem.VisuallyHidden, {
|
|
174
|
+
"aria-live": "polite",
|
|
175
|
+
"aria-atomic": "true",
|
|
176
|
+
children: liveAnnouncement
|
|
177
|
+
}),
|
|
178
|
+
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
|
|
179
|
+
position: "relative",
|
|
180
|
+
children: children
|
|
181
|
+
}),
|
|
182
|
+
/*#__PURE__*/ jsxRuntime.jsx(core.DragOverlay, {
|
|
183
|
+
dropAnimation: null,
|
|
184
|
+
children: activeItem ? /*#__PURE__*/ jsxRuntime.jsx(DragOverlayChip.DragOverlayChip, {
|
|
185
|
+
item: activeItem
|
|
186
|
+
}) : null
|
|
187
|
+
})
|
|
188
|
+
]
|
|
189
|
+
})
|
|
190
|
+
});
|
|
191
|
+
}; // TODO(CMS-229): FolderTree droppables + keyboard move path.
|
|
192
|
+
|
|
193
|
+
exports.AssetsDndProvider = AssetsDndProvider;
|
|
194
|
+
exports.useAssetsDndOptional = useAssetsDndOptional;
|
|
195
|
+
//# sourceMappingURL=AssetsDndProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AssetsDndProvider.js","sources":["../../../../../../../admin/src/future/pages/Assets/components/Dnd/AssetsDndProvider.tsx"],"sourcesContent":["import { createContext, useCallback, useContext, useMemo, useState, type ReactNode } from 'react';\n\nimport {\n DndContext,\n DragOverlay,\n PointerSensor,\n pointerWithin,\n useSensor,\n useSensors,\n type DragEndEvent,\n type DragStartEvent,\n} from '@dnd-kit/core';\nimport { useNotification } from '@strapi/admin/strapi-admin';\nimport { Box, VisuallyHidden } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { useBulkMoveMutation, useGetFolderStructureQuery } from '../../../../services/folders';\nimport { buildBulkMovePayload } from '../../../../utils/buildBulkMovePayload';\nimport { canDropItemOnFolder } from '../../../../utils/canDropItemOnFolder';\nimport { getBulkMoveErrorMessage } from '../../../../utils/getBulkMoveErrorMessage';\nimport { getTranslationKey } from '../../../../utils/translations';\n\nimport { parseFolderTargetId } from './dndIds';\nimport { DragOverlayChip } from './DragOverlayChip';\n\nimport type { DragItemData } from '../../../../types/dnd';\n\n/* -------------------------------------------------------------------------------------------------\n * Context — shared with UploadDropZoneProvider for bidirectional drag guard.\n * See UploadDropZoneContext.tsx TODO linking both providers.\n * -----------------------------------------------------------------------------------------------*/\n\ninterface AssetsDndContextValue {\n isInternalDragActive: boolean;\n isMovePending: boolean;\n}\n\nconst AssetsDndContext = createContext<AssetsDndContextValue | null>(null);\n\nexport const useAssetsDnd = () => {\n const context = useContext(AssetsDndContext);\n\n if (!context) {\n throw new Error('useAssetsDnd must be used within AssetsDndProvider');\n }\n\n return context;\n};\n\nexport const useAssetsDndOptional = () => useContext(AssetsDndContext);\n\n/* -------------------------------------------------------------------------------------------------\n * Provider\n * -----------------------------------------------------------------------------------------------*/\n\ninterface AssetsDndProviderProps {\n children: ReactNode;\n}\n\nconst getDragItems = (activeData: DragItemData | undefined): DragItemData[] => {\n if (!activeData) {\n return [];\n }\n\n // TODO(CMS-433): include selectedItems from active data for multi-drag payload members.\n return [activeData];\n};\n\nexport const AssetsDndProvider = ({ children }: AssetsDndProviderProps) => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { data: folderStructure = [] } = useGetFolderStructureQuery();\n const [bulkMove, { isLoading: isMovePending }] = useBulkMoveMutation();\n const [activeItem, setActiveItem] = useState<DragItemData | null>(null);\n const [liveAnnouncement, setLiveAnnouncement] = useState('');\n\n const announceToLiveRegion = useCallback((message: string) => {\n setLiveAnnouncement('');\n requestAnimationFrame(() => setLiveAnnouncement(message));\n }, []);\n\n const sensors = useSensors(\n useSensor(PointerSensor, {\n activationConstraint: { distance: 8 },\n })\n );\n\n const contextValue = useMemo<AssetsDndContextValue>(\n () => ({\n isInternalDragActive: activeItem !== null,\n isMovePending,\n }),\n [activeItem, isMovePending]\n );\n\n const handleDragStart = useCallback((event: DragStartEvent) => {\n const data = event.active.data.current as DragItemData | undefined;\n setActiveItem(data ?? null);\n }, []);\n\n const handleDragEnd = useCallback(\n async (event: DragEndEvent) => {\n const { active, over } = event;\n setActiveItem(null);\n\n if (isMovePending || !over) {\n return;\n }\n\n const targetFolderId = parseFolderTargetId(over.id);\n const activeData = active.data.current as DragItemData | undefined;\n\n if (targetFolderId == null || !activeData) {\n return;\n }\n\n const items = getDragItems(activeData);\n\n if (\n !canDropItemOnFolder({\n items,\n targetFolderId,\n folderStructure,\n })\n ) {\n return;\n }\n\n const payload = buildBulkMovePayload(items);\n const successMessage = formatMessage({\n id: getTranslationKey('modal.move.success-label'),\n defaultMessage: 'Elements have been moved successfully.',\n });\n const errorFallback = formatMessage({\n id: getTranslationKey('modal.move.error-label'),\n defaultMessage: 'An error occurred while moving the elements.',\n });\n\n try {\n await bulkMove({ ...payload, destinationFolderId: targetFolderId }).unwrap();\n\n announceToLiveRegion(successMessage);\n\n toggleNotification({\n type: 'success',\n message: successMessage,\n });\n } catch (error) {\n const errorMessage = getBulkMoveErrorMessage(error, errorFallback);\n\n announceToLiveRegion(\n formatMessage(\n {\n id: getTranslationKey('dnd.announce.move-failure'),\n defaultMessage: 'Move failed. {message}',\n },\n { message: errorMessage }\n )\n );\n\n toggleNotification({\n type: 'danger',\n message: errorMessage,\n });\n }\n },\n [\n announceToLiveRegion,\n bulkMove,\n folderStructure,\n formatMessage,\n isMovePending,\n toggleNotification,\n ]\n );\n\n const handleDragCancel = useCallback(() => {\n setActiveItem(null);\n }, []);\n\n const announcements = useMemo(\n () => ({\n onDragStart: ({ active }: DragStartEvent) => {\n const data = active.data.current as DragItemData | undefined;\n return data\n ? formatMessage(\n {\n id: getTranslationKey('dnd.announce.drag-start'),\n defaultMessage: 'Picked up {name}. Drop on a folder to move.',\n },\n { name: data.name }\n )\n : '';\n },\n onDragOver: () => '',\n onDragEnd: ({ active, over }: DragEndEvent) => {\n if (!over) {\n return formatMessage({\n id: getTranslationKey('dnd.announce.cancel'),\n defaultMessage: 'Drag cancelled.',\n });\n }\n\n const targetFolderId = parseFolderTargetId(over.id);\n const activeData = active.data.current as DragItemData | undefined;\n\n if (targetFolderId == null || !activeData) {\n return '';\n }\n\n const items = getDragItems(activeData);\n\n if (\n !canDropItemOnFolder({\n items,\n targetFolderId,\n folderStructure,\n })\n ) {\n return formatMessage({\n id: getTranslationKey('dnd.announce.invalid-drop'),\n defaultMessage: 'Cannot move item to this folder.',\n });\n }\n\n return '';\n },\n onDragCancel: () =>\n formatMessage({\n id: getTranslationKey('dnd.announce.cancel'),\n defaultMessage: 'Drag cancelled.',\n }),\n }),\n [folderStructure, formatMessage]\n );\n\n return (\n <AssetsDndContext.Provider value={contextValue}>\n <DndContext\n sensors={sensors}\n collisionDetection={pointerWithin}\n onDragStart={handleDragStart}\n onDragEnd={handleDragEnd}\n onDragCancel={handleDragCancel}\n accessibility={{ announcements }}\n >\n <VisuallyHidden aria-live=\"polite\" aria-atomic=\"true\">\n {liveAnnouncement}\n </VisuallyHidden>\n <Box position=\"relative\">{children}</Box>\n <DragOverlay dropAnimation={null}>\n {activeItem ? <DragOverlayChip item={activeItem} /> : null}\n </DragOverlay>\n </DndContext>\n </AssetsDndContext.Provider>\n );\n};\n\n// TODO(CMS-229): FolderTree droppables + keyboard move path.\n"],"names":["AssetsDndContext","createContext","useAssetsDndOptional","useContext","getDragItems","activeData","AssetsDndProvider","children","formatMessage","useIntl","toggleNotification","useNotification","data","folderStructure","useGetFolderStructureQuery","bulkMove","isLoading","isMovePending","useBulkMoveMutation","activeItem","setActiveItem","useState","liveAnnouncement","setLiveAnnouncement","announceToLiveRegion","useCallback","message","requestAnimationFrame","sensors","useSensors","useSensor","PointerSensor","activationConstraint","distance","contextValue","useMemo","isInternalDragActive","handleDragStart","event","active","current","handleDragEnd","over","targetFolderId","parseFolderTargetId","id","items","canDropItemOnFolder","payload","buildBulkMovePayload","successMessage","getTranslationKey","defaultMessage","errorFallback","destinationFolderId","unwrap","type","error","errorMessage","getBulkMoveErrorMessage","handleDragCancel","announcements","onDragStart","name","onDragOver","onDragEnd","onDragCancel","_jsx","Provider","value","_jsxs","DndContext","collisionDetection","pointerWithin","accessibility","VisuallyHidden","aria-live","aria-atomic","Box","position","DragOverlay","dropAnimation","DragOverlayChip","item"],"mappings":"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"}
|