From a91bdfb047558edf3f96a212a9bb1b0f815a7d71 Mon Sep 17 00:00:00 2001 From: Volodymyr Kozieiev Date: Thu, 12 Nov 2020 16:17:22 +0200 Subject: [PATCH] Don't make inability to unfurl url a user's problem Signed-off-by: Volodymyr Kozieiev --- src/status_im/chat/models/link_preview.cljs | 15 ++++---- .../ui/screens/chat/message/link_preview.cljs | 34 +++++++++---------- 2 files changed, 25 insertions(+), 24 deletions(-) diff --git a/src/status_im/chat/models/link_preview.cljs b/src/status_im/chat/models/link_preview.cljs index 2cddb7f057..6d0ec1d8e1 100644 --- a/src/status_im/chat/models/link_preview.cljs +++ b/src/status_im/chat/models/link_preview.cljs @@ -23,16 +23,17 @@ {::json-rpc/call [{:method (json-rpc/call-ext-method "getLinkPreviewData") :params [link] :on-success #(re-frame/dispatch [::cache-link-preview-data link %]) - :on-error #(log/error "Can't get preview data for " link)}]})) + :on-error #(re-frame/dispatch [::cache-link-preview-data + link + {:error (str "Can't get preview data for " link)}])}]})) (fx/defn cache-link-preview-data {:events [::cache-link-preview-data]} - [{{:keys [multiaccount]} :db :as cofx} site {:keys [error] :as data}] - (when-not error - (multiaccounts.update/optimistic - cofx - :link-previews-cache - (assoc (get multiaccount :link-previews-cache {}) site data)))) + [{{:keys [multiaccount]} :db :as cofx} site data] + (multiaccounts.update/optimistic + cofx + :link-previews-cache + (assoc (get multiaccount :link-previews-cache {}) site data))) (fx/defn should-suggest-link-preview {:events [::should-suggest-link-preview]} diff --git a/src/status_im/ui/screens/chat/message/link_preview.cljs b/src/status_im/ui/screens/chat/message/link_preview.cljs index 6e1d68487e..dfacd13cef 100644 --- a/src/status_im/ui/screens/chat/message/link_preview.cljs +++ b/src/status_im/ui/screens/chat/message/link_preview.cljs @@ -59,29 +59,29 @@ (defview link-preview-loader [link outgoing] (letsubs [cache [:link-preview/cache]] - (let [{:keys [site title thumbnailUrl] :as preview-data} (get cache link)] + (let [{:keys [site title thumbnailUrl error] :as preview-data} (get cache link)] (if (not preview-data) (do (re-frame/dispatch [::link-preview/load-link-preview-data link]) nil) + (when-not error + [react/touchable-highlight + {:on-press #(when (and (security/safe-link? link)) + (re-frame/dispatch + [:browser.ui/message-link-pressed link]))} - [react/touchable-highlight - {:on-press #(when (and (security/safe-link? link)) - (re-frame/dispatch - [:browser.ui/message-link-pressed link]))} - - [react/view (styles/link-preview-wrapper outgoing) - [react/image {:source {:uri thumbnailUrl} - :style (styles/link-preview-image outgoing) - :accessibility-label :member-photo}] - [quo/text {:size :small - :style styles/link-preview-title} - title] - [quo/text {:size :small - :color :secondary - :style styles/link-preview-site} - site]]])))) + [react/view (styles/link-preview-wrapper outgoing) + [react/image {:source {:uri thumbnailUrl} + :style (styles/link-preview-image outgoing) + :accessibility-label :member-photo}] + [quo/text {:size :small + :style styles/link-preview-title} + title] + [quo/text {:size :small + :color :secondary + :style styles/link-preview-site} + site]]]))))) (defview link-preview-wrapper [links outgoing] (letsubs