                                                  (set! (.-href js/location) (str "#/article/" (:db/id response)))
                                                  (.reload js/location))})))))}
            [:i.save.icon] "Save"]]
+         (when-not (empty? error-map)
+           [:div.ui.error.message
+            (for [[_ messages] error-map]
+              (for [message messages]
+                [:div.header message]))])
          [:div.scroll-pane
           [:div.ui.comments
            (map-indexed

                   (om/build editorial-space-view curating-block
                             {:state {:content (:curating-block/content curating-block)}
                              :opts {:save-fn (fn [content]
                                                (om/update-state! owner [:editing-article :article/blocks index ]
                                                                  (fn [block]
                                                                    (assoc block
                                                                           :curating-block/content content
                                                                           :curating-block/posted-at (js/Date.)))))}})
                   (case (get-in curating-block [:curating-block/format :db/ident])
                     :curating-block.format/markdown {:dangerouslySetInnerHTML {:__html (.render js/md (:curating-block/content curating-block))}}
                     :curating-block.format/voice [:audio {:controls true

          [:button.ui.primary.button
           {:on-click (fn [_]
                        (let [article (om/get-state owner :editing-article)
                              [result map] (b/validate article
                                                       :article/name v/required
                                                       :article/blocks [[v/every #(not (or (nil? (:curating-block/content %))
                                                                                           (empty? (:curating-block/content %))))
                                                                         :message "All editable spaces must be saved."]])]
                          (if result
                            (om/set-state! owner :error-map (:bouncer.core/errors map))
                            (if-let [id (:db/id article)]
