 (defn ^:private make-page-cache [state columns]
   (into {}
         ;; Transducerpower
-        (comp (mapcat #(column-pages % state))
+        (comp (mapcat #(when (satisfies? ColumnSource %) (column-pages % state)))
               (map om/value)
               (map (juxt :id identity)))
         columns))

                                          source-column
                                          page-ids
                                          0)))}
     [:header
      (column-title column state)]
     [:.center
      "Drag pages here or press \"Open to open a file or document"
      [:button {:on-click (fn [e]

      (let [gen (IdGenerator.getInstance)
            columns (for [column columns]
                      (match [column]
                        [[:document id]]    (->DocumentColumnSource (.getNextUniqueId gen) id)
                        [[:inbox _]]        (->InboxColumnSource (.getNextUniqueId gen))
                        [[:new-document _]] (->NewDocumentColumn (.getNextUniqueId gen))))]
        (filterv identity columns)))))

(defn- prepare-columns! [props state owner]
