diff --git a/packages/core/upload/admin/src/components/AssetCard/AssetCard.js b/packages/core/upload/admin/src/components/AssetCard/AssetCard.js
index 41ce38ace9..c83b85313c 100644
--- a/packages/core/upload/admin/src/components/AssetCard/AssetCard.js
+++ b/packages/core/upload/admin/src/components/AssetCard/AssetCard.js
@@ -27,7 +27,7 @@ export const AssetCard = ({ allowedTypes, asset, isSelected, onSelect, onEdit, s
key={asset.id}
name={asset.name}
extension={getFileExtension(asset.ext)}
- url={local ? asset.url : createAssetUrl(asset)}
+ url={local ? asset.url : createAssetUrl(asset, true)}
mime={asset.mime}
onEdit={onEdit ? () => onEdit(asset) : undefined}
onSelect={handleSelect}
diff --git a/packages/core/upload/admin/src/components/EditAssetDialog/PreviewBox/index.js b/packages/core/upload/admin/src/components/EditAssetDialog/PreviewBox/index.js
index 551a2a08f5..85963c0903 100644
--- a/packages/core/upload/admin/src/components/EditAssetDialog/PreviewBox/index.js
+++ b/packages/core/upload/admin/src/components/EditAssetDialog/PreviewBox/index.js
@@ -41,7 +41,8 @@ export const PreviewBox = ({
}) => {
const { trackUsage } = useTracking();
const previewRef = useRef(null);
- const [assetUrl, setAssetUrl] = useState(createAssetUrl(asset));
+ const [assetUrl, setAssetUrl] = useState(createAssetUrl(asset, false));
+ const [thumbnailUrl, setThumbnailUrl] = useState(createAssetUrl(asset, true));
const { formatMessage } = useIntl();
const [showConfirmDialog, setShowConfirmDialog] = useState(false);
const {
@@ -73,6 +74,7 @@ export const PreviewBox = ({
asset.url = fileLocalUrl;
}
setAssetUrl(fileLocalUrl);
+ setThumbnailUrl(fileLocalUrl);
}
}, [replacementFile, asset]);
@@ -83,16 +85,19 @@ export const PreviewBox = ({
// Making sure that when persisting the new asset, the URL changes with width and height
// So that the browser makes a request and handle the image caching correctly at the good size
let optimizedCachingImage;
+ let optimizedCachingThumbnailImage;
if (asset.isLocal) {
optimizedCachingImage = URL.createObjectURL(file);
+ optimizedCachingThumbnailImage = optimizedCachingImage;
asset.url = optimizedCachingImage;
asset.rawFile = file;
trackUsage('didCropFile', { duplicatedFile: null, location: trackedLocation });
} else {
const updatedAsset = await editAsset(nextAsset, file);
- optimizedCachingImage = createAssetUrl(updatedAsset);
+ optimizedCachingImage = createAssetUrl(updatedAsset, false);
+ optimizedCachingThumbnailImage = createAssetUrl(updatedAsset, true);
trackUsage('didCropFile', { duplicatedFile: false, location: trackedLocation });
}
@@ -100,6 +105,7 @@ export const PreviewBox = ({
stopCropping();
onCropCancel();
setAssetUrl(optimizedCachingImage);
+ setThumbnailUrl(optimizedCachingThumbnailImage);
};
const isInCroppingMode = isCropping && !isLoading;
@@ -192,7 +198,7 @@ export const PreviewBox = ({
)}
-
+
{
return (
@@ -39,7 +39,7 @@ export const CarouselAsset = ({ asset }) => {
as="img"
maxHeight="100%"
maxWidth="100%"
- src={createAssetUrl(asset)}
+ src={createAssetUrl(asset, true)}
alt={asset.alternativeText || asset.name}
/>
);
diff --git a/packages/core/upload/admin/src/utils/createAssetUrl.js b/packages/core/upload/admin/src/utils/createAssetUrl.js
index 5c878601c4..8560b80f11 100644
--- a/packages/core/upload/admin/src/utils/createAssetUrl.js
+++ b/packages/core/upload/admin/src/utils/createAssetUrl.js
@@ -1,11 +1,18 @@
import { prefixFileUrlWithBackendUrl } from '@strapi/helper-plugin';
-export const createAssetUrl = asset => {
+/**
+ * Create image URL for asset
+ * @param {Object} asset
+ * @param {Boolean} forThumbnail - if true, return URL for thumbnail
+ * if there's no thumbnail, return the URL of the original image.
+ * @return {String} URL
+ */
+export const createAssetUrl = (asset, forThumbnail = true) => {
if (asset.isLocal) {
return asset.url;
}
- const assetUrl = asset?.formats?.thumbnail?.url || asset.url;
+ const assetUrl = forThumbnail ? asset?.formats?.thumbnail?.url || asset.url : asset.url;
const backendUrl = prefixFileUrlWithBackendUrl(assetUrl);
return `${backendUrl}?updated_at=${asset.updatedAt}`;