Spacing between codeblocks and regular text + fixes for "edited at" message (#15307)
* Spacing between codeblocks and regular text + fixes for "edited at" message Fixes Post-review updates * Lint fixes
This commit is contained in:
parent
de6a736c10
commit
8546727f84
|
@ -1,13 +1,22 @@
|
||||||
(ns status-im2.contexts.chat.messages.content.text.style
|
(ns status-im2.contexts.chat.messages.content.text.style
|
||||||
(:require [quo2.foundations.colors :as colors]))
|
(:require [quo2.foundations.colors :as colors]))
|
||||||
|
|
||||||
|
(def spacing-between-blocks 10)
|
||||||
|
|
||||||
|
(def parsed-text-block
|
||||||
|
{:margin-top -4})
|
||||||
|
|
||||||
|
(def paragraph
|
||||||
|
{:margin-top spacing-between-blocks})
|
||||||
|
|
||||||
(def block
|
(def block
|
||||||
{:border-radius 6
|
{:margin-top spacing-between-blocks
|
||||||
:padding-horizontal 3
|
:border-radius 6
|
||||||
:transform [{:translateY 4}]})
|
:padding-horizontal 3})
|
||||||
|
|
||||||
(def quote
|
(def quote
|
||||||
{:border-left-width 1
|
{:margin-top spacing-between-blocks
|
||||||
|
:border-left-width 1
|
||||||
:padding-left 10
|
:padding-left 10
|
||||||
:border-left-color colors/neutral-40})
|
:border-left-color colors/neutral-40})
|
||||||
|
|
||||||
|
@ -16,3 +25,12 @@
|
||||||
{:background-color (colors/theme-colors colors/neutral-5 colors/white-opa-5)
|
{:background-color (colors/theme-colors colors/neutral-5 colors/white-opa-5)
|
||||||
:border-width 1
|
:border-width 1
|
||||||
:border-color (colors/theme-colors colors/neutral-20 colors/white-opa-20)})
|
:border-color (colors/theme-colors colors/neutral-20 colors/white-opa-20)})
|
||||||
|
|
||||||
|
(def edited-block
|
||||||
|
{:margin-top 4})
|
||||||
|
|
||||||
|
(defn edited-tag
|
||||||
|
[]
|
||||||
|
{:font-size 11
|
||||||
|
:margin-top 4
|
||||||
|
:color (colors/theme-colors colors/neutral-40 colors/neutral-50)})
|
||||||
|
|
|
@ -74,59 +74,61 @@
|
||||||
|
|
||||||
|
|
||||||
(defn render-block
|
(defn render-block
|
||||||
[blocks {:keys [type literal children]} chat-id edited-at]
|
[blocks {:keys [type literal children]} chat-id]
|
||||||
(case (keyword type)
|
(case (keyword type)
|
||||||
:paragraph
|
:paragraph
|
||||||
(conj blocks
|
(conj blocks
|
||||||
(reduce
|
[rn/view {:style style/paragraph}
|
||||||
(fn [acc e]
|
(reduce
|
||||||
(render-inline acc e chat-id))
|
(fn [acc e]
|
||||||
[quo/text]
|
(render-inline acc e chat-id))
|
||||||
children))
|
[quo/text]
|
||||||
|
children)])
|
||||||
|
|
||||||
|
:edited-block
|
||||||
|
(conj blocks
|
||||||
|
[rn/view {:style style/paragraph}
|
||||||
|
(reduce
|
||||||
|
(fn [acc e]
|
||||||
|
(render-inline acc e chat-id))
|
||||||
|
[quo/text]
|
||||||
|
children)])
|
||||||
|
|
||||||
:blockquote
|
:blockquote
|
||||||
(conj blocks
|
(conj blocks
|
||||||
[rn/view {:style style/quote}
|
[rn/view {:style style/quote}
|
||||||
[quo/text literal]]
|
[quo/text literal]])
|
||||||
(when edited-at
|
|
||||||
[quo/text
|
|
||||||
{:weight :medium
|
|
||||||
:style {:font-size 11
|
|
||||||
:margin-top 4
|
|
||||||
:color (colors/theme-colors colors/neutral-40 colors/neutral-50)}}
|
|
||||||
(str " (" (i18n/label :t/edited) ")")]))
|
|
||||||
|
|
||||||
:codeblock
|
:codeblock
|
||||||
(conj blocks
|
(conj blocks
|
||||||
[rn/view {:style (merge style/block (style/code))}
|
[rn/view {:style (merge style/block (style/code))}
|
||||||
[quo/text (subs literal 0 (dec (count literal)))]]
|
[quo/text (subs literal 0 (dec (count literal)))]])
|
||||||
(when edited-at
|
|
||||||
[quo/text
|
|
||||||
{:weight :medium
|
|
||||||
:style {:font-size 11
|
|
||||||
:margin-top 4
|
|
||||||
:color (colors/theme-colors colors/neutral-40 colors/neutral-50)}}
|
|
||||||
(str " (" (i18n/label :t/edited) ")")]))
|
|
||||||
blocks))
|
blocks))
|
||||||
|
|
||||||
|
(def edited-tag
|
||||||
|
{:literal (str "(" (i18n/label :t/edited) ")")
|
||||||
|
:type :edited})
|
||||||
|
|
||||||
(defn add-edited-tag
|
(defn add-edited-tag
|
||||||
[parsed-text]
|
[parsed-text]
|
||||||
(update parsed-text
|
(let [items-count (count parsed-text)
|
||||||
(dec (count parsed-text))
|
last-item (get parsed-text (dec items-count))]
|
||||||
(fn [last-literal]
|
(if (= (keyword (:type last-item)) :paragraph)
|
||||||
(update last-literal
|
(update parsed-text
|
||||||
:children
|
(dec items-count)
|
||||||
conj
|
(fn [last-literal]
|
||||||
{:literal (str " (" (i18n/label :t/edited) ")")
|
(update last-literal :children into [{:literal " "} edited-tag])))
|
||||||
:type :edited}))))
|
(conj parsed-text {:type :edited-block :children [edited-tag]}))))
|
||||||
|
|
||||||
(defn render-parsed-text
|
(defn render-parsed-text
|
||||||
[{:keys [content chat-id edited-at]}]
|
[{:keys [content chat-id edited-at]}]
|
||||||
(reduce (fn [acc e]
|
[rn/view {:style style/parsed-text-block}
|
||||||
(render-block acc e chat-id edited-at))
|
(reduce (fn [acc e]
|
||||||
[:<>]
|
(render-block acc e chat-id))
|
||||||
(cond-> (:parsed-text content)
|
[:<>]
|
||||||
edited-at add-edited-tag)))
|
(cond-> (:parsed-text content)
|
||||||
|
edited-at
|
||||||
|
add-edited-tag))])
|
||||||
|
|
||||||
(defn text-content
|
(defn text-content
|
||||||
[message-data context]
|
[message-data context]
|
||||||
|
|
Loading…
Reference in New Issue