From 10f9fe11dba0986f7b46db935f6872744161a555 Mon Sep 17 00:00:00 2001 From: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com> Date: Thu, 15 Feb 2024 18:52:59 +0530 Subject: [PATCH] [Fix] Broken wallet account emoji when syncing devices (#18828) This commit fixes the broken wallet account emoji when syncing devices by adding a sanitization method for the wallet account emoji. The desktop can handle both variants (raw emoji and img tag); this PR adds the same for mobile. Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com> --- src/status_im/contexts/wallet/data_store.cljs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/status_im/contexts/wallet/data_store.cljs b/src/status_im/contexts/wallet/data_store.cljs index 3e8b721705..7782146076 100644 --- a/src/status_im/contexts/wallet/data_store.cljs +++ b/src/status_im/contexts/wallet/data_store.cljs @@ -22,6 +22,15 @@ [account] (assoc account :watch-only? (= (:type account) :watch))) +(defn- sanitize-emoji + "As Desktop uses Twemoji, the emoji received can be an img tag + with raw emoji in alt attribute. This function help us to extract + the emoji from it as mobile doesn't support HTML rendering and Twemoji" + [emoji] + (if (string/starts-with? emoji " (re-find #"alt=\"(.*?)\"" emoji) last) + emoji)) + (defn rpc->account [account] (-> account @@ -33,6 +42,7 @@ (update :test-preferred-chain-ids chain-ids-string->set) (update :type keyword) (update :color #(if (seq %) (keyword %) constants/account-default-customization-color)) + (update :emoji sanitize-emoji) (assoc :default-account? (:wallet account)) add-keys-to-account))