diff --git a/packages/volto/news/6591.feature b/packages/volto/news/6591.feature new file mode 100644 index 0000000000..f662901e21 --- /dev/null +++ b/packages/volto/news/6591.feature @@ -0,0 +1 @@ +- Fixed handling of the site logo preview to appear after upload. @Shyam-Raghuwanshi diff --git a/packages/volto/src/components/manage/Widgets/RegistryImageWidget.jsx b/packages/volto/src/components/manage/Widgets/RegistryImageWidget.jsx index 0ec4367a36..7ab9238486 100644 --- a/packages/volto/src/components/manage/Widgets/RegistryImageWidget.jsx +++ b/packages/volto/src/components/manage/Widgets/RegistryImageWidget.jsx @@ -3,7 +3,7 @@ * @module components/manage/Widgets/RegistryImageWidget */ -import React from 'react'; +import React, { useState } from 'react'; import PropTypes from 'prop-types'; import { Button, Image, Dimmer } from 'semantic-ui-react'; import { readAsDataURL } from 'promise-file-reader'; @@ -76,12 +76,15 @@ const RegistryImageWidget = (props) => { const { id, value, onChange, isDisabled } = props; const intl = useIntl(); - const fileName = value?.split(';')[0]; - const imgsrc = fileName - ? `${toPublicURL('/')}@@site-logo/${atob( - fileName.replace('filenameb64:', ''), - )}` - : ''; + // State to manage the preview image source + const [previewSrc, setPreviewSrc] = useState(() => { + const fileName = value?.split(';')[0]; + return fileName + ? `${toPublicURL('/')}@@site-logo/${atob( + fileName.replace('filenameb64:', ''), + )}` + : ''; + }); /** * Drop handler @@ -102,8 +105,7 @@ const RegistryImageWidget = (props) => { reader.onload = function () { const fields = reader.result.match(/^data:(.*);(.*),(.*)$/); if (imageMimetypes.includes(fields[1])) { - let imagePreview = document.getElementById(`field-${id}-image`); - imagePreview.src = reader.result; + setPreviewSrc(reader.result); } }; reader.readAsDataURL(files[0]); @@ -115,12 +117,12 @@ const RegistryImageWidget = (props) => { {({ getRootProps, getInputProps, isDragActive }) => (