diff --git a/packages/image-cloze-association/src/possible-response.jsx b/packages/image-cloze-association/src/possible-response.jsx
index e0d8817d2d..8f0b86c091 100644
--- a/packages/image-cloze-association/src/possible-response.jsx
+++ b/packages/image-cloze-association/src/possible-response.jsx
@@ -50,11 +50,11 @@ const StyledSpan = styled(StaticHTMLSpan)(() => ({
},
}));
-const PossibleResponse = ({ canDrag, containerStyle, data, onDragBegin, answerChoiceTransparency }) => {
+const PossibleResponse = ({ canDrag, containerStyle, data, onDragBegin, answerChoiceTransparency, isOverlay }) => {
const rootRef = useRef(null);
const longPressTimer = useRef(null);
- const { setNodeRef, attributes, listeners } = useDraggable({
+ const { setNodeRef, attributes, listeners, isDragging } = useDraggable({
id: `possible-response-${data.id}`,
data: {
id: data.id,
@@ -110,9 +110,9 @@ const PossibleResponse = ({ canDrag, containerStyle, data, onDragBegin, answerCh
const containsImage = imgRegex.test(data.value);
const containerClassNames = classNames({
- answerChoiceTransparency,
+ answerChoiceTransparency: answerChoiceTransparency && !isDragging,
[correctnessClass]: !!correctnessClass,
- textAnswerChoiceStyle: !containsImage,
+ textAnswerChoiceStyle: !containsImage && !isOverlay,
});
const promptClassNames = classNames({ hiddenSpan: data.hidden });
@@ -140,11 +140,13 @@ PossibleResponse.propTypes = {
data: PropTypes.object.isRequired,
onDragBegin: PropTypes.func.isRequired,
answerChoiceTransparency: PropTypes.bool,
+ isOverlay: PropTypes.bool,
};
PossibleResponse.defaultProps = {
containerStyle: {},
answerChoiceTransparency: false,
+ isOverlay: false,
};
export default PossibleResponse;
diff --git a/packages/image-cloze-association/src/root.jsx b/packages/image-cloze-association/src/root.jsx
index 4a10a067f8..a4c65fde19 100644
--- a/packages/image-cloze-association/src/root.jsx
+++ b/packages/image-cloze-association/src/root.jsx
@@ -121,18 +121,23 @@ export class ImageClozeAssociationComponent extends React.Component {
if (!draggingElement.id) return null;
- if (draggingElement.id) {
- return (
-
- );
- }
+ // check if the response contains an image
+ const imgRegex = /
]+src="([^">]+)"/;
+ const containsImage = imgRegex.test(draggingElement.value);
- return null;
+ return (
+ {}}
+ isOverlay
+ containerStyle={{
+ ...(model.answerChoiceTransparency ? { opacity: '0.8' } : {}),
+ ...(!containsImage ? { padding: '0 10px', margin: '4px 6px !important' } : {}),
+ }}
+ />
+ );
};
filterPossibleAnswers = (possibleResponses, answer) =>