                :on-drop (fn [e]
                           (println "on-drop")
                           (let [source-column (get-transfer-data e "application/x-pepa-column")
-                                page-ids (get-transfer-data e "application/x-pepa-pages")]
+                                page-ids (get-transfer-data e "application/x-pepa-pages")
+                                copy? (drag-copy? e)]
                             ;; Delegate to `inbox'
                             (handle-drop! (:id column)
                                           source-column
                                           page-ids
-                                          drop-idx))
+                                          drop-idx
+                                          copy?))
                           ;; Remove drop-target
                           (om/set-state! owner :drop-idx nil))}
      [:header

                   :on-drop (fn [e]
                              (println "[new-document-ui] on-drop")
                              (let [source-column (get-transfer-data e "application/x-pepa-column")
                                    page-ids (get-transfer-data e "application/x-pepa-pages")]
                                ;; Delegate to `inbox'
                                (handle-drop! (:id column)
                                              source-column
                                              page-ids
                                              0)))}
     [:header nil]
     [:.center
      "Drag pages here or press \"Open\" to open a document"

      (go
        (if (<! (accept-drop! target state pages target-idx))
          (do
            ;; TODO: Handle copy instead of move
            (println "Target saved.")
            (when-not copy?
              (println "Removing from source...")
              (<! (remove-pages! source state page-ids)))
            (println "Drop saved!"))
          (js/console.warn "`accept-drop!' returned non-truthy value. Aborting drop."))))))

