diff --git a/src/status_im/chat/events.cljs b/src/status_im/chat/events.cljs index 4a1333d4e5..a308f98b42 100644 --- a/src/status_im/chat/events.cljs +++ b/src/status_im/chat/events.cljs @@ -289,20 +289,29 @@ (handlers/merge-fx cofx (transport/unsubscribe-from-chat chat-id))))) (handlers/register-handler-fx - :remove-chat + :leave-chat-and-navigate-home [re-frame/trim-v] (fn [cofx [chat-id]] (handlers/merge-fx cofx (models/remove-chat chat-id) + (navigation/replace-view :home) (remove-transport chat-id)))) +(handlers/register-handler-fx + :leave-group-chat? + [re-frame/trim-v] + (fn [_ [chat-id]] + {:show-confirmation {:title (i18n/label :t/leave-confirmation) + :content (i18n/label :t/leave-group-chat-confirmation) + :confirm-button-text (i18n/label :t/leave) + :on-accept #(re-frame/dispatch [:leave-chat-and-navigate-home chat-id])}})) + (handlers/register-handler-fx :remove-chat-and-navigate-home [re-frame/trim-v] (fn [cofx [chat-id]] (handlers/merge-fx cofx - (models/remove-chat chat-id) - (remove-transport chat-id) + (models/remove-chat chat-id) (navigation/replace-view :home)))) (handlers/register-handler-fx @@ -351,15 +360,6 @@ (navigate-to-chat random-id {}) (transport.message/send (group-chat/GroupAdminUpdate. chat-name selected-contacts) random-id))))) -(handlers/register-handler-fx - :leave-group-chat? - [re-frame/trim-v] - (fn [_ [chat-id]] - {:show-confirmation {:title (i18n/label :t/leave-confirmation) - :content (i18n/label :t/leave-group-chat-confirmation) - :confirm-button-text (i18n/label :t/leave) - :on-accept #(re-frame/dispatch [:remove-chat-and-navigate-home chat-id])}})) - (handlers/register-handler-fx :show-profile [re-frame/trim-v] diff --git a/src/status_im/chat/models.cljs b/src/status_im/chat/models.cljs index d3316a7df1..911dcf95f4 100644 --- a/src/status_im/chat/models.cljs +++ b/src/status_im/chat/models.cljs @@ -100,9 +100,7 @@ (let [{:keys [chat-id group-chat debug?]} (get-in db [:chats chat-id])] (cond-> {:db (-> db (update :chats dissoc chat-id) - (update :deleted-chats (fnil conj #{}) chat-id))} - (or group-chat debug?) - (assoc :data-store/delete-messages chat-id) + (update :deleted-chats (fnil conj #{}) chat-id))} debug? (assoc :data-store/delete-chat chat-id) (not debug?) diff --git a/src/status_im/chat/models/message.cljs b/src/status_im/chat/models/message.cljs index 2fc388272d..f45c63c87e 100644 --- a/src/status_im/chat/models/message.cljs +++ b/src/status_im/chat/models/message.cljs @@ -110,15 +110,11 @@ [{:keys [db get-stored-message]} {:keys [chat-id from message-id] :as message}] (let [{:keys [chats deleted-chats current-public-key]} db {:keys [messages not-loaded-message-ids]} (get chats chat-id)] - (when (not= from current-public-key) - (if (group-message? message) - (not (or (get deleted-chats chat-id) - (get messages message-id) - (get not-loaded-message-ids message-id))) - (not (or (get messages message-id) - (get not-loaded-message-ids message-id) - (and (get deleted-chats chat-id) - (get-stored-message message-id)))))))) + (when (not= from current-public-key) + (not (or (get messages message-id) + (get not-loaded-message-ids message-id) + (and (get deleted-chats chat-id) + (get-stored-message message-id))))))) (defn message-seen-by? [message user-pk] (= :seen (get-in message [:user-statuses user-pk]))) diff --git a/src/status_im/commands/handlers/debug.cljs b/src/status_im/commands/handlers/debug.cljs index 24dc33d846..7135c0537c 100644 --- a/src/status_im/commands/handlers/debug.cljs +++ b/src/status_im/commands/handlers/debug.cljs @@ -55,8 +55,7 @@ (do (re-frame/dispatch [:update-contact! dapp]) (respond {:type :ok :text "The DApp or bot has been updated."})) - (do (re-frame/dispatch [:add-contacts [dapp]]) - (re-frame/dispatch [:open-chat-with-contact dapp]) + (do (re-frame/dispatch [:open-chat-with-contact dapp]) (respond {:type :ok :text "The DApp or bot has been added."})))) (respond {:type :error diff --git a/src/status_im/ui/screens/home/views.cljs b/src/status_im/ui/screens/home/views.cljs index 467361a716..942fb3e309 100644 --- a/src/status_im/ui/screens/home/views.cljs +++ b/src/status_im/ui/screens/home/views.cljs @@ -38,7 +38,7 @@ (views/defview home-list-item [[home-item-id home-item]] (views/letsubs [swiped? [:delete-swipe-position home-item-id]] - (let [delete-action (if (:chat-id home-item) :remove-chat :remove-browser) + (let [delete-action (if (:chat-id home-item) :remove-chat-and-navigate-home :remove-browser) inner-item-view (if (:chat-id home-item) inner-item/home-list-chat-item-inner-view inner-item/home-list-browser-item-inner-view)