{
const file = files.item(i);
assets.push({
+ name: file.name,
source: AssetSource.Computer,
type: typeFromMime(file.type),
url: URL.createObjectURL(file),
diff --git a/packages/core/upload/admin/src/components/UploadAssetDialog/AddAssetStep/tests/FromUrlForm.test.js b/packages/core/upload/admin/src/components/UploadAssetDialog/AddAssetStep/tests/FromUrlForm.test.js
index 9196eab7a5..09a6730dee 100644
--- a/packages/core/upload/admin/src/components/UploadAssetDialog/AddAssetStep/tests/FromUrlForm.test.js
+++ b/packages/core/upload/admin/src/components/UploadAssetDialog/AddAssetStep/tests/FromUrlForm.test.js
@@ -40,6 +40,7 @@ describe('FromUrlForm', () => {
const expectedAssets = [
{
+ name: 'http://localhost:5000/an-image.png',
ext: 'png',
mime: 'image/png',
source: 'url',
@@ -48,6 +49,7 @@ describe('FromUrlForm', () => {
rawFile: new File([''], 'image/png'),
},
{
+ name: 'http://localhost:5000/a-pdf.pdf',
ext: 'pdf',
mime: 'application/pdf',
source: 'url',
@@ -56,6 +58,7 @@ describe('FromUrlForm', () => {
rawFile: new File([''], 'application/pdf'),
},
{
+ name: 'http://localhost:5000/a-video.mp4',
ext: 'mp4',
mime: 'video/mp4',
source: 'url',
@@ -64,6 +67,7 @@ describe('FromUrlForm', () => {
rawFile: new File([''], 'video/mp4'),
},
{
+ name: 'http://localhost:5000/not-working-like-cors.lutin',
ext: 'lutin',
mime: 'application/json',
source: 'url',
diff --git a/packages/core/upload/admin/src/components/UploadAssetDialog/PendingAssetStep/PendingAssetStep.js b/packages/core/upload/admin/src/components/UploadAssetDialog/PendingAssetStep/PendingAssetStep.js
index 087d446d7a..c4625870c0 100644
--- a/packages/core/upload/admin/src/components/UploadAssetDialog/PendingAssetStep/PendingAssetStep.js
+++ b/packages/core/upload/admin/src/components/UploadAssetDialog/PendingAssetStep/PendingAssetStep.js
@@ -1,4 +1,4 @@
-import React from 'react';
+import React, { useState } from 'react';
import PropTypes from 'prop-types';
import { ModalHeader, ModalBody, ModalFooter } from '@strapi/parts/ModalLayout';
import { ButtonText, Text } from '@strapi/parts/Text';
@@ -12,18 +12,18 @@ import { DocAssetCard } from '../../AssetCard/DocAssetCard';
import { ImageAssetCard } from '../../AssetCard/ImageAssetCard';
import { VideoAssetCard } from '../../AssetCard/VideoAssetCard';
import { UnknownAssetCard } from '../../AssetCard/UnknownAssetCard';
+import { UploadingAssetCard } from '../../AssetCard/UploadingAssetCard';
import { getTrad } from '../../../utils';
import { AssetType, AssetSource } from '../../../constants';
-import { useUpload } from '../../../hooks/useUpload';
export const PendingAssetStep = ({ onClose, assets, onClickAddAsset }) => {
const { formatMessage } = useIntl();
- const { upload, isLoading } = useUpload(assets, onClose);
+ const [isUploading, setIsUploading] = useState(false);
const handleSubmit = async e => {
e.preventDefault();
- await upload();
+ setIsUploading(true);
};
return (
@@ -69,16 +69,32 @@ export const PendingAssetStep = ({ onClose, assets, onClickAddAsset }) => {
{assets.map((asset, idx) => {
const assetKey = `${asset.url}-${idx}`;
+ if (isUploading) {
+ return (
+
+
+
+ );
+ }
+
if (asset.type === AssetType.Image) {
return (
);
@@ -89,10 +105,11 @@ export const PendingAssetStep = ({ onClose, assets, onClickAddAsset }) => {
);
@@ -101,14 +118,19 @@ export const PendingAssetStep = ({ onClose, assets, onClickAddAsset }) => {
if (asset.type === AssetType.Unknown) {
return (
-
+
);
}
return (
-
+
);
})}
@@ -124,7 +146,7 @@ export const PendingAssetStep = ({ onClose, assets, onClickAddAsset }) => {
}
endActions={
-