diff options
author | bob <bcz@cs.brown.edu> | 2020-01-24 17:33:32 -0500 |
---|---|---|
committer | bob <bcz@cs.brown.edu> | 2020-01-24 17:33:32 -0500 |
commit | 15cb130178872d73b0c4939e4eca4f0eb21ed9f0 (patch) | |
tree | ebb93d1026c4c1f4087a47d893c51018e20bf29d /src/client/views/nodes/ImageBox.tsx | |
parent | 34ba9b8c3ce48c51dfb1d330d5285e0eadf92030 (diff) |
fixed imagebox dropping for empty image templates.
Diffstat (limited to 'src/client/views/nodes/ImageBox.tsx')
-rw-r--r-- | src/client/views/nodes/ImageBox.tsx | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/src/client/views/nodes/ImageBox.tsx b/src/client/views/nodes/ImageBox.tsx index 03753e9d3..29b0e912d 100644 --- a/src/client/views/nodes/ImageBox.tsx +++ b/src/client/views/nodes/ImageBox.tsx @@ -73,14 +73,17 @@ export class ImageBox extends DocAnnotatableComponent<FieldViewProps, ImageDocum @action drop = (e: Event, de: DragManager.DropEvent) => { if (de.complete.docDragData) { - if (de.altKey && de.complete.docDragData.draggedDocuments.length && de.complete.docDragData.draggedDocuments[0].data instanceof ImageField) { - Doc.GetProto(this.dataDoc)[this.props.fieldKey] = new ImageField(de.complete.docDragData.draggedDocuments[0].data.url); - e.stopPropagation(); + if (de.metaKey) { + de.complete.docDragData.droppedDocuments.forEach(action((drop: Doc) => { + Doc.AddDocToList(this.dataDoc, this.props.fieldKey + "-alternates", drop); + e.stopPropagation(); + })); + } else if (de.altKey || !this.dataDoc[this.props.fieldKey]) { + if (de.complete.docDragData.draggedDocuments?.[0].data instanceof ImageField) { + this.dataDoc[this.props.fieldKey] = new ImageField(de.complete.docDragData.draggedDocuments[0].data.url); + e.stopPropagation(); + } } - de.metaKey && de.complete.docDragData.droppedDocuments.forEach(action((drop: Doc) => { - Doc.AddDocToList(this.dataDoc, this.props.fieldKey + "-alternates", drop); - e.stopPropagation(); - })); } } |