Skip to content

Commit

Permalink
Handle mailserver not working signal
Browse files Browse the repository at this point in the history
  • Loading branch information
cammellos committed Mar 17, 2022
1 parent bbe729f commit 5600c57
Show file tree
Hide file tree
Showing 3 changed files with 40 additions and 28 deletions.
63 changes: 37 additions & 26 deletions src/status_im/mailserver/core.cljs
Original file line number Diff line number Diff line change
Expand Up @@ -60,43 +60,53 @@

(defonce showing-connection-error-popup? (atom false))

(fx/defn show-connection-error! [{:keys [db]} current-fleet preferred-mailserver]
(defn cancel-connection-popup! []
(reset! showing-connection-error-popup? false)
(re-frame/dispatch [:mailserver.ui/dismiss-connection-error true]))

(re-frame/reg-fx
::cancel-connection-popup
cancel-connection-popup!)

(fx/defn show-connection-error! [cofx current-fleet preferred-mailserver]
(reset! showing-connection-error-popup? true)
{:db (assoc db :ui/show-confirmation
{:title (i18n/label :t/mailserver-error-title)
:content (i18n/label :t/mailserver-error-content)
:confirm-button-text (i18n/label :t/mailserver-pick-another)
:on-cancel #(do
(reset! showing-connection-error-popup? false)
(re-frame/dispatch [:mailserver.ui/dismiss-connection-error true]))
:on-accept #(do
{:ui/show-confirmation
{:title (i18n/label :t/mailserver-error-title)
:content (i18n/label :t/mailserver-error-content)
:confirm-button-text (i18n/label :t/mailserver-pick-another)
:on-cancel cancel-connection-popup!
:on-accept #(do
(reset! showing-connection-error-popup? false)
(re-frame/dispatch [:mailserver.ui/dismiss-connection-error true])
(re-frame/dispatch [:navigate-to :offline-messaging-settings]))
:extra-options [{:text (i18n/label :t/mailserver-retry)
:onPress #(do
(reset! showing-connection-error-popup? false)
(re-frame/dispatch [:mailserver.ui/dismiss-connection-error true])
(re-frame/dispatch [:navigate-to :offline-messaging-settings]))
:extra-options [{:text (i18n/label :t/mailserver-retry)
:onPress #(do
(reset! showing-connection-error-popup? false)
(re-frame/dispatch
[:mailserver.ui/connect-confirmed
current-fleet
preferred-mailserver]))
:style "default"}]})})
(re-frame/dispatch
[:mailserver.ui/connect-confirmed
current-fleet
preferred-mailserver]))
:style "default"}]}})

(fx/defn handle-successful-request
{:events [::request-success]}
[{:keys [db] :as cofx} response-js]
{:db (dissoc db :mailserver/current-request)
:dispatch [:sanitize-messages-and-process-response response-js]})

(fx/defn handle-mailserver-not-working [{:keys [db] :as cofx}]
(let [current-fleet (node/current-fleet-key db)
error-dismissed? (connection-error-dismissed db)
pinned-mailserver (get-in db [:multiaccount :pinned-mailservers current-fleet])]
(when (and pinned-mailserver
(not error-dismissed?)
(not @showing-connection-error-popup?))
(show-connection-error! cofx current-fleet pinned-mailserver))))

(fx/defn handle-request-error
{:events [::request-error]}
[{:keys [db] :as cofx}]
(let [current-fleet (node/current-fleet-key db)
pinned-mailserver (get-in db [:multiaccount :pinned-mailservers current-fleet])]
(fx/merge cofx
{:db (dissoc db :mailserver/current-request)}
(when pinned-mailserver
(show-connection-error! current-fleet pinned-mailserver)))))
{:db (dissoc db :mailserver/current-request)})

(fx/defn process-next-messages-request
{:events [::request-messages]}
Expand Down Expand Up @@ -126,7 +136,8 @@

(fx/defn handle-mailserver-available
[{:keys [db] :as cofx} ms]
{:db (assoc db :mailserver/state :connected
{::cancel-connection-popup []
:db (assoc db :mailserver/state :connected
:mailserver/current-id (keyword ms))})

(fx/defn connected-to-mailserver
Expand Down
1 change: 1 addition & 0 deletions src/status_im/signals/core.cljs
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,7 @@
(models.message/update-db-message-status cofx chatID messageID :delivered))
"mailserver.changed" (mailserver/handle-mailserver-changed cofx (.-id event-js))
"mailserver.available" (mailserver/handle-mailserver-available cofx (.-id event-js))
"mailserver.not.working" (mailserver/handle-mailserver-not-working cofx)
"discovery.summary" (summary cofx (js->clj event-js :keywordize-keys true))
"wakuv2.peerstats" (wakuv2-peer-stats cofx (js->clj event-js :keywordize-keys true))
"subscriptions.data" (ethereum.subscriptions/handle-signal cofx (js->clj event-js :keywordize-keys true))
Expand Down
4 changes: 2 additions & 2 deletions status-go-version.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,6 @@
"owner": "status-im",
"repo": "status-go",
"version": "bug/dont-overwrite-send-status",
"commit-sha1": "2485e20b263c28151d22e1af60f705efbd64e52d",
"src-sha256": "0hc0zh6dshxfbav5ra3q6ipkn3xvdqrixy0nin3zq0w5660iln97"
"commit-sha1": "54d1a4164a937df251acfb9067b8b6860e0cfe2f",
"src-sha256": "0j7hkk1p648afjic82gfah9nqnwx83dac6i736qc0457l46b78fg"
}

0 comments on commit 5600c57

Please sign in to comment.