Fix deleted chats behavior

This commit is contained in:
janherich 2018-04-12 00:50:32 +02:00
parent 80cb7ada68
commit 69b6fb40b4
No known key found for this signature in database
GPG Key ID: C23B473AFBE94D13
5 changed files with 20 additions and 27 deletions

View File

@ -289,20 +289,29 @@
(handlers/merge-fx cofx (transport/unsubscribe-from-chat chat-id))))) (handlers/merge-fx cofx (transport/unsubscribe-from-chat chat-id)))))
(handlers/register-handler-fx (handlers/register-handler-fx
:remove-chat :leave-chat-and-navigate-home
[re-frame/trim-v] [re-frame/trim-v]
(fn [cofx [chat-id]] (fn [cofx [chat-id]]
(handlers/merge-fx cofx (handlers/merge-fx cofx
(models/remove-chat chat-id) (models/remove-chat chat-id)
(navigation/replace-view :home)
(remove-transport chat-id)))) (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 (handlers/register-handler-fx
:remove-chat-and-navigate-home :remove-chat-and-navigate-home
[re-frame/trim-v] [re-frame/trim-v]
(fn [cofx [chat-id]] (fn [cofx [chat-id]]
(handlers/merge-fx cofx (handlers/merge-fx cofx
(models/remove-chat chat-id) (models/remove-chat chat-id)
(remove-transport chat-id)
(navigation/replace-view :home)))) (navigation/replace-view :home))))
(handlers/register-handler-fx (handlers/register-handler-fx
@ -351,15 +360,6 @@
(navigate-to-chat random-id {}) (navigate-to-chat random-id {})
(transport.message/send (group-chat/GroupAdminUpdate. chat-name selected-contacts) 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 (handlers/register-handler-fx
:show-profile :show-profile
[re-frame/trim-v] [re-frame/trim-v]

View File

@ -101,8 +101,6 @@
(cond-> {:db (-> db (cond-> {:db (-> db
(update :chats dissoc chat-id) (update :chats dissoc chat-id)
(update :deleted-chats (fnil conj #{}) chat-id))} (update :deleted-chats (fnil conj #{}) chat-id))}
(or group-chat debug?)
(assoc :data-store/delete-messages chat-id)
debug? debug?
(assoc :data-store/delete-chat chat-id) (assoc :data-store/delete-chat chat-id)
(not debug?) (not debug?)

View File

@ -111,14 +111,10 @@
(let [{:keys [chats deleted-chats current-public-key]} db (let [{:keys [chats deleted-chats current-public-key]} db
{:keys [messages not-loaded-message-ids]} (get chats chat-id)] {:keys [messages not-loaded-message-ids]} (get chats chat-id)]
(when (not= from current-public-key) (when (not= from current-public-key)
(if (group-message? message) (not (or (get messages message-id)
(not (or (get deleted-chats chat-id) (get not-loaded-message-ids message-id)
(get messages message-id) (and (get deleted-chats chat-id)
(get not-loaded-message-ids message-id))) (get-stored-message 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))))))))
(defn message-seen-by? [message user-pk] (defn message-seen-by? [message user-pk]
(= :seen (get-in message [:user-statuses user-pk]))) (= :seen (get-in message [:user-statuses user-pk])))

View File

@ -55,8 +55,7 @@
(do (re-frame/dispatch [:update-contact! dapp]) (do (re-frame/dispatch [:update-contact! dapp])
(respond {:type :ok (respond {:type :ok
:text "The DApp or bot has been updated."})) :text "The DApp or bot has been updated."}))
(do (re-frame/dispatch [:add-contacts [dapp]]) (do (re-frame/dispatch [:open-chat-with-contact dapp])
(re-frame/dispatch [:open-chat-with-contact dapp])
(respond {:type :ok (respond {:type :ok
:text "The DApp or bot has been added."})))) :text "The DApp or bot has been added."}))))
(respond {:type :error (respond {:type :error

View File

@ -38,7 +38,7 @@
(views/defview home-list-item [[home-item-id home-item]] (views/defview home-list-item [[home-item-id home-item]]
(views/letsubs [swiped? [:delete-swipe-position home-item-id]] (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-view (if (:chat-id home-item)
inner-item/home-list-chat-item-inner-view inner-item/home-list-chat-item-inner-view
inner-item/home-list-browser-item-inner-view) inner-item/home-list-browser-item-inner-view)