                               (remove #(contains? page-ids (:id %)))
                               pages))))))
   ColumnDropTarget
-  (accepts-drop? [_ state]
-    true)
   ;; TODO: Make immutable?
   (accept-drop! [_ state new-pages]
     (go
       (println "dropping" (pr-str new-pages) "on inbox")
-      (<! (api/add-to-inbox! (map :id new-pages)))))
+      (<! (api/add-to-inbox! (map :id new-pages)))
+      ;; Return true, indicating successful drop
+      true))
   om/IWillMount
   (will-mount [_]
     (api/fetch-inbox!)))

                     :fn (partial mark-page-selected (:selected selection))})]]))

(defn ^:private inbox-handle-drop! [state owner page-cache target source page-ids]
  ;; Call `accepts-drop!' in `target'
  (let [columns (om/get-state owner :columns)
        target (get columns target)
        source (get columns source)

  (remove-pages! [_ state page-ids]))

(defprotocol ColumnDropTarget
  (accept-drop!  [_ state pages]))

(defrecord InboxColumnSource [id]
