fix message sent state for audio and emoji messages (#13459)

This commit is contained in:
Parvesh Monu 2022-06-09 17:08:20 +05:30 committed by GitHub
parent 789b24e3a4
commit beeb72a9d5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -520,40 +520,41 @@
[react/text-class {:style (style/status-text)}] [react/text-class {:style (style/status-text)}]
(-> content :parsed-text peek :children))]]]) (-> content :parsed-text peek :children))]]])
(defmethod ->message constants/content-type-emoji (defmethod ->message constants/content-type-emoji []
[{:keys [content current-public-key outgoing public? pinned in-popover? message-pin-enabled] :as message} {:keys [on-long-press modal] (let [show-timestamp? (reagent/atom false)]
:as reaction-picker}] (fn [{:keys [content current-public-key outgoing public? pinned in-popover? message-pin-enabled] :as message}
(let [response-to (:response-to content) {:keys [on-long-press modal]
show-timestamp? (reagent/atom false)] :as reaction-picker}]
(fn [] [message-content-wrapper message (let [response-to (:response-to content)]
[react/touchable-highlight (when-not modal [message-content-wrapper message
{:disabled in-popover? [react/touchable-highlight (when-not modal
:on-press (fn [] {:disabled in-popover?
(react/dismiss-keyboard!) :on-press (fn []
(reset! show-timestamp? true)) (react/dismiss-keyboard!)
:delay-long-press 100 (reset! show-timestamp? true))
:on-long-press (fn [] :delay-long-press 100
(on-long-press :on-long-press (fn []
(concat (on-long-press
[{:on-press #(re-frame/dispatch [:chat.ui/reply-to-message message]) (concat
:id :reply [{:on-press #(re-frame/dispatch [:chat.ui/reply-to-message message])
:label (i18n/label :t/message-reply)} :id :reply
{:on-press #(react/copy-to-clipboard (get content :text)) :label (i18n/label :t/message-reply)}
:id :copy {:on-press #(react/copy-to-clipboard (get content :text))
:label (i18n/label :t/sharing-copy-to-clipboard)}] :id :copy
(when message-pin-enabled [{:on-press #(pin-message message) :label (i18n/label :t/sharing-copy-to-clipboard)}]
:label (if pinned (i18n/label :t/unpin) (i18n/label :t/pin))}]))))}) (when message-pin-enabled [{:on-press #(pin-message message)
[react/view (style/message-view-wrapper outgoing) :label (if pinned (i18n/label :t/unpin) (i18n/label :t/pin))}]))))})
[message-timestamp message show-timestamp?] [react/view (style/message-view-wrapper outgoing)
[react/view (style/message-view message) [message-timestamp message show-timestamp?]
[react/view {:style (style/message-view-content)} [react/view (style/message-view message)
[react/view {:style (style/style-message-text outgoing)} [react/view {:style (style/message-view-content)}
(when (and (seq response-to) (:quoted-message message)) [react/view {:style (style/style-message-text outgoing)}
[quoted-message response-to (:quoted-message message) outgoing current-public-key public? pinned]) (when (and (seq response-to) (:quoted-message message))
[react/text {:style (style/emoji-message message)} [quoted-message response-to (:quoted-message message) outgoing current-public-key public? pinned])
(:text content)]] [react/text {:style (style/emoji-message message)}
[message-status message]]]]] (:text content)]]
reaction-picker]))) [message-status message]]]]]
reaction-picker]))))
(defmethod ->message constants/content-type-sticker (defmethod ->message constants/content-type-sticker
[{:keys [content from outgoing in-popover?] [{:keys [content from outgoing in-popover?]
@ -607,28 +608,28 @@
:id :delete}]))))}] :id :delete}]))))}]
reaction-picker]) reaction-picker])
(defmethod ->message constants/content-type-audio (defmethod ->message constants/content-type-audio []
[{:keys [outgoing] :as message}
{:keys [on-long-press modal]
:as reaction-picker}]
(let [show-timestamp? (reagent/atom false)] (let [show-timestamp? (reagent/atom false)]
(fn [] [message-content-wrapper message (fn [{:keys [outgoing] :as message}
[react/touchable-highlight {:keys [on-long-press modal]
(when-not modal :as reaction-picker}]
{:on-long-press [message-content-wrapper message
(fn [] (on-long-press (if (and outgoing config/delete-message-enabled?) [react/touchable-highlight
[{:on-press #(re-frame/dispatch [:chat.ui/soft-delete-message message]) (when-not modal
:label (i18n/label :t/delete) {:on-long-press
:id :delete}] (fn [] (on-long-press (if (and outgoing config/delete-message-enabled?)
[]))) [{:on-press #(re-frame/dispatch [:chat.ui/soft-delete-message message])
:on-press (fn [] :label (i18n/label :t/delete)
(reset! show-timestamp? true))}) :id :delete}]
[react/view (style/message-view-wrapper (:outgoing message)) [])))
[message-timestamp message show-timestamp?] :on-press (fn []
[react/view {:style (style/message-view message) :accessibility-label :audio-message} (reset! show-timestamp? true))})
[react/view {:style (style/message-view-content)} [react/view (style/message-view-wrapper (:outgoing message))
[message.audio/message-content message] [message-status message]]]]] [message-timestamp message show-timestamp?]
reaction-picker]))) [react/view {:style (style/message-view message) :accessibility-label :audio-message}
[react/view {:style (style/message-view-content)}
[message.audio/message-content message] [message-status message]]]]]
reaction-picker])))
(defn contact-request-status-pending [] (defn contact-request-status-pending []
[react/view {:style {:flex-direction :row}} [react/view {:style {:flex-direction :row}}