Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion recipes/error-handling/src/client/app/ui.cljs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,9 @@
(defui ^:once Child
static om/IQuery
;; you can query for the server-error using a link from any component that composes to root
(query [_] [[:untangled/server-error '_] :ui/button-disabled])
(query [_] [[:untangled/server-error '_] :ui/button-disabled :untangled/read-error])
static om/Ident
(ident [_ _] [:child/by-id :singleton])
Object
(render [this]
(let [{:keys [untangled/server-error ui/button-disabled]} (om/props this)]
Expand All @@ -16,6 +18,8 @@
(dom/button #js {:onClick #(om/transact! this '[(my/mutation) (tx/fallback {:action button/disable})])
:disabled button-disabled}
"Click me for error!")
(dom/button #js {:onClick #(df/load-field this :untangled/read-error)}
"Click me for other error!")
(dom/div nil (str server-error))))))

(def ui-child (om/factory Child))
Expand Down
3 changes: 3 additions & 0 deletions recipes/error-handling/src/server/app/api.clj
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,9 @@
(defmethod apimutate :default [e k p]
(timbre/error "Unrecognized mutation " k))

(defmethod api-read :child/by-id [{:keys [ast]} _ _]
{:value (throw (ex-info "other read error" {}))})

(defmethod api-read :default [{:keys [ast]} _ _]
(timbre/error "Unrecognized query " (op/ast->expr ast))
;; Bug in untangled server requires the error response bodies for reads to be manually encoded as json, will fix soon
Expand Down