Merge pull request #369 from status-im/bug/ui-fixes
Several UI fixes (#362, #364, #367)
Former-commit-id: 891507f767
This commit is contained in:
commit
c4739fb4bc
|
@ -261,52 +261,6 @@
|
|||
:textAlign :center
|
||||
:color text2-color})
|
||||
|
||||
(def online-container
|
||||
{:position :absolute
|
||||
:top 44
|
||||
:left 44
|
||||
:width 24
|
||||
:height 24
|
||||
:borderRadius 12
|
||||
:backgroundColor online-color
|
||||
:borderWidth 2
|
||||
:borderColor color-white})
|
||||
|
||||
(def online-dot
|
||||
{:position :absolute
|
||||
:top 8
|
||||
:width 4
|
||||
:height 4
|
||||
:borderRadius 2
|
||||
:backgroundColor color-white})
|
||||
|
||||
(def online-dot-left
|
||||
(assoc online-dot :left 5))
|
||||
|
||||
(def online-dot-right
|
||||
(assoc online-dot :left 11))
|
||||
|
||||
(def contact-photo-container
|
||||
{:borderRadius 32})
|
||||
|
||||
(def contact-photo
|
||||
{:border-radius 32
|
||||
:width 64
|
||||
:height 64})
|
||||
|
||||
(def message-date-container
|
||||
{:backgroundColor color-light-blue-transparent
|
||||
:height 24
|
||||
:borderRadius 12
|
||||
:alignSelf :center
|
||||
:marginTop 20
|
||||
:marginBottom 20
|
||||
:paddingTop 5
|
||||
:paddingHorizontal 12})
|
||||
|
||||
(def message-date-text
|
||||
(assoc style-sub-text :textAlign :center))
|
||||
|
||||
(defn message-container [height]
|
||||
{:height height})
|
||||
|
||||
|
|
|
@ -24,30 +24,15 @@
|
|||
content-type-status
|
||||
content-type-command
|
||||
content-type-command-request]]
|
||||
[status-im.components.chat-icon.screen :refer [chat-icon-message-status]]
|
||||
[status-im.utils.identicon :refer [identicon]]
|
||||
[status-im.utils.gfycat.core :refer [generate-gfy]]
|
||||
[status-im.i18n :refer [label]]
|
||||
[status-im.chat.utils :as cu]
|
||||
[clojure.string :as str]))
|
||||
|
||||
(defn contact-photo [photo-path]
|
||||
[view st/contact-photo-container
|
||||
[image {:source (if (s/blank? photo-path)
|
||||
res/user-no-photo
|
||||
{:uri photo-path})
|
||||
:style st/contact-photo}]])
|
||||
|
||||
(defn contact-online [online?]
|
||||
(when online?
|
||||
[view st/online-container
|
||||
[view st/online-dot-left]
|
||||
[view st/online-dot-right]]))
|
||||
|
||||
;;[photo-path (subscribe [:chat-photo from])
|
||||
|
||||
(defn message-content-status [{:keys [from]}]
|
||||
(let [chat-photo-path (subscribe [:chat-photo from])
|
||||
{:keys [group-chat name]} (subscribe [:chat-properties [:group-chat :name]])
|
||||
(defn message-content-status [_]
|
||||
(let [{:keys [chat-id group-chat name color]} (subscribe [:chat-properties [:chat-id :group-chat :name :color]])
|
||||
members (subscribe [:current-chat-contacts])]
|
||||
(fn [{:keys [messages-count content datemark]}]
|
||||
(let [{:keys [photo-path
|
||||
|
@ -56,13 +41,9 @@
|
|||
{:photo-path nil
|
||||
:status nil
|
||||
:last-online 0}
|
||||
(first @members))
|
||||
online? (-> (- (time/now-ms) last-online)
|
||||
(< (* 60 1000)))]
|
||||
(first @members))]
|
||||
[view st/status-container
|
||||
[view st/status-image-view
|
||||
[contact-photo (or photo-path @chat-photo-path)]
|
||||
[contact-online online?]]
|
||||
[chat-icon-message-status @chat-id @group-chat @name @color false]
|
||||
[text {:style st/status-from
|
||||
:font :default
|
||||
:number-of-lines 1}
|
||||
|
|
|
@ -4,13 +4,10 @@
|
|||
text
|
||||
image
|
||||
touchable-highlight]]
|
||||
[status-im.chats-list.views.inner-item :refer [chat-list-item-inner-view]]))
|
||||
[status-im.chats-list.views.inner-item :refer [chat-list-item-inner-view]]
|
||||
[taoensso.timbre :as log]))
|
||||
|
||||
(defn chat-list-item [[chat-id chat]]
|
||||
[touchable-highlight {:on-press #(dispatch [:navigate-to :chat chat-id])}
|
||||
[view
|
||||
[chat-list-item-inner-view (merge chat
|
||||
;; TODO stub data
|
||||
{:chat-id chat-id
|
||||
:new-messages-count 3
|
||||
:online true})]]])
|
||||
[chat-list-item-inner-view (assoc chat :chat-id chat-id)]]])
|
||||
|
|
|
@ -1,20 +1,37 @@
|
|||
(ns status-im.chats-list.views.inner-item
|
||||
(:require-macros [status-im.utils.views :refer [defview]])
|
||||
(:require [status-im.components.react :refer [view image icon text]]
|
||||
(:require [re-frame.core :refer [subscribe dispatch]]
|
||||
[clojure.string :as str]
|
||||
[status-im.components.react :refer [view image icon text]]
|
||||
[status-im.components.chat-icon.screen :refer [chat-icon-view-chat-list]]
|
||||
[status-im.models.commands :refer [parse-command-message-content]]
|
||||
[status-im.chats-list.styles :as st]
|
||||
[status-im.utils.utils :refer [truncate-str]]
|
||||
[status-im.i18n :refer [label label-pluralize]]
|
||||
[status-im.utils.datetime :as time]
|
||||
[status-im.utils.gfycat.core :refer [generate-gfy]]
|
||||
[status-im.constants :refer [console-chat-id]]
|
||||
[clojure.string :as str]))
|
||||
[status-im.constants :refer [console-chat-id
|
||||
content-type-command
|
||||
content-type-command-request]]
|
||||
[taoensso.timbre :as log]))
|
||||
|
||||
(defn message-content [{:keys [content] :as message}]
|
||||
(let [content (if message
|
||||
(if (string? content)
|
||||
content
|
||||
(:content content)))]
|
||||
(defmulti message-content (fn [{:keys [content-type] :as message}] content-type))
|
||||
|
||||
(defmethod message-content content-type-command
|
||||
[{{:keys [command params]} :content}]
|
||||
(let [kw (keyword (str "t/command-text-" (name command)))]
|
||||
(label kw params)))
|
||||
|
||||
(defmethod message-content content-type-command-request
|
||||
[{{:keys [content]} :content}]
|
||||
content)
|
||||
|
||||
(defmethod message-content :default
|
||||
[{:keys [content]}]
|
||||
content)
|
||||
|
||||
(defn message-content-text [message]
|
||||
(let [content (message-content message)]
|
||||
(if (str/blank? content)
|
||||
[text {:style st/last-message-text-no-messages}
|
||||
(label :t/no-messages)]
|
||||
|
@ -71,7 +88,7 @@
|
|||
(when group-chat
|
||||
[text {:style st/memebers-text}
|
||||
(label-pluralize (inc (count contacts)) :t/members)])]
|
||||
[message-content last-message]]
|
||||
[message-content-text last-message]]
|
||||
[view
|
||||
(when last-message
|
||||
[view st/status-container
|
||||
|
|
|
@ -78,6 +78,16 @@
|
|||
:default-chat-icon (st/default-chat-icon-menu-item color)
|
||||
:default-chat-icon-text st/default-chat-icon-text}])
|
||||
|
||||
(defn chat-icon-message-status [chat-id group-chat name color online]
|
||||
[chat-icon-view chat-id group-chat name online
|
||||
{:container st/container-message-status
|
||||
:online-view st/online-view
|
||||
:online-dot-left st/online-dot-left
|
||||
:online-dot-right st/online-dot-right
|
||||
:chat-icon st/chat-icon-message-status
|
||||
:default-chat-icon (st/default-chat-icon-message-status color)
|
||||
:default-chat-icon-text st/message-status-icon-text}])
|
||||
|
||||
(defn contact-icon-view [contact styles]
|
||||
(let [photo-path (:photo-path contact)
|
||||
;; TODO: stub
|
||||
|
|
|
@ -35,12 +35,23 @@
|
|||
:height 36
|
||||
:border-radius 18}))
|
||||
|
||||
(defn default-chat-icon-message-status [color]
|
||||
(merge (default-chat-icon color)
|
||||
{:width 64
|
||||
:height 64
|
||||
:border-radius 32}))
|
||||
|
||||
(def default-chat-icon-text
|
||||
{:marginTop -2
|
||||
:color color-white
|
||||
:fontSize 16
|
||||
:lineHeight 20})
|
||||
|
||||
(def message-status-icon-text
|
||||
{:marginTop -2
|
||||
:color color-white
|
||||
:fontSize 24})
|
||||
|
||||
(def chat-icon
|
||||
{:margin 4
|
||||
:border-radius 20
|
||||
|
@ -70,6 +81,11 @@
|
|||
:height 36
|
||||
:border-radius 18}))
|
||||
|
||||
(def chat-icon-message-status
|
||||
{:border-radius 32
|
||||
:width 64
|
||||
:height 64})
|
||||
|
||||
(def online-view-wrapper
|
||||
{:position :absolute
|
||||
:bottom -1
|
||||
|
@ -152,3 +168,6 @@
|
|||
(def container-profile
|
||||
{:width 72
|
||||
:height 72})
|
||||
|
||||
(def container-message-status
|
||||
{:margin-top 20})
|
||||
|
|
|
@ -65,7 +65,9 @@
|
|||
|
||||
(defn get-last-message
|
||||
[chat-id]
|
||||
(data-store/get-last-message chat-id))
|
||||
(let [{:keys [content-type] :as message} (data-store/get-last-message chat-id)]
|
||||
(when (and message (command-type? content-type))
|
||||
(clojure.core/update message :content str-to-map))))
|
||||
|
||||
(defn get-unviewed
|
||||
[]
|
||||
|
|
|
@ -31,8 +31,7 @@
|
|||
[chat-id]
|
||||
(-> (realm/get-by-field @realm/account-realm :message :chat-id chat-id)
|
||||
(realm/sorted :timestamp :desc)
|
||||
(realm/single)
|
||||
(js->clj :keywordize-keys true)))
|
||||
(realm/single-cljs)))
|
||||
|
||||
(defn get-unviewed
|
||||
[]
|
||||
|
|
|
@ -139,6 +139,9 @@
|
|||
:keypair-password-command-description ""
|
||||
:help-command-description "Help"
|
||||
:request "Request"
|
||||
:command-text-location "Location: {{address}}"
|
||||
:command-text-browse "Browsing webpage: {{webpage}}"
|
||||
:command-text-send "Transaction: {{amount}} ETH"
|
||||
|
||||
;new-group
|
||||
:group-chat-name "Chat name"
|
||||
|
|
Loading…
Reference in New Issue