fix(chats): Last message overlapped by the composer when a message is pinned (#20606)
* fixed overlapping last message by the composer when there is a pinned message * prevent a user who is not a member of a community from pinning or unpinning channel messages --------- Co-authored-by: Ulises M <ulises.ssb@hotmail.com>
This commit is contained in:
parent
fa4ea0640d
commit
d7242f1c70
|
@ -50,7 +50,7 @@
|
||||||
item])))))
|
item])))))
|
||||||
|
|
||||||
(defn add-manage-members
|
(defn add-manage-members
|
||||||
[{:keys [scroll-enabled? on-scroll]}]
|
[{:keys [on-scroll]}]
|
||||||
(let [theme (quo.theme/use-theme)
|
(let [theme (quo.theme/use-theme)
|
||||||
selected-participants (rf/sub [:group-chat/selected-participants])
|
selected-participants (rf/sub [:group-chat/selected-participants])
|
||||||
deselected-members (rf/sub [:group-chat/deselected-members])
|
deselected-members (rf/sub [:group-chat/deselected-members])
|
||||||
|
@ -74,7 +74,6 @@
|
||||||
(i18n/label (if admin? :t/manage-members :t/add-members))]
|
(i18n/label (if admin? :t/manage-members :t/add-members))]
|
||||||
[gesture/section-list
|
[gesture/section-list
|
||||||
{:key-fn :title
|
{:key-fn :title
|
||||||
:scroll-enabled @scroll-enabled?
|
|
||||||
:on-scroll on-scroll
|
:on-scroll on-scroll
|
||||||
:sticky-section-headers-enabled false
|
:sticky-section-headers-enabled false
|
||||||
:sections (rf/sub [:contacts/grouped-by-first-letter])
|
:sections (rf/sub [:contacts/grouped-by-first-letter])
|
||||||
|
|
|
@ -97,7 +97,7 @@
|
||||||
[{:keys [outgoing content pinned-by outgoing-status deleted? deleted-for-me? content-type
|
[{:keys [outgoing content pinned-by outgoing-status deleted? deleted-for-me? content-type
|
||||||
bridge-message]
|
bridge-message]
|
||||||
:as message-data}
|
:as message-data}
|
||||||
{:keys [able-to-send-message? community? can-delete-message-for-everyone?
|
{:keys [able-to-send-message? community? community-member? can-delete-message-for-everyone?
|
||||||
message-pin-enabled group-chat group-admin?]}]
|
message-pin-enabled group-chat group-admin?]}]
|
||||||
(concat
|
(concat
|
||||||
(when (and outgoing
|
(when (and outgoing
|
||||||
|
@ -131,7 +131,8 @@
|
||||||
:id :copy}])
|
:id :copy}])
|
||||||
;; pinning images are temporarily disabled
|
;; pinning images are temporarily disabled
|
||||||
(when (and message-pin-enabled
|
(when (and message-pin-enabled
|
||||||
(not= content-type constants/content-type-image))
|
(not= content-type constants/content-type-image)
|
||||||
|
(or community-member? (not community?)))
|
||||||
[{:type :main
|
[{:type :main
|
||||||
:on-press #(pin-message message-data)
|
:on-press #(pin-message message-data)
|
||||||
:label (i18n/label (if pinned-by
|
:label (i18n/label (if pinned-by
|
||||||
|
|
|
@ -5,6 +5,8 @@
|
||||||
[react-native.reanimated :as reanimated]
|
[react-native.reanimated :as reanimated]
|
||||||
[status-im.contexts.chat.messenger.messages.constants :as messages.constants]))
|
[status-im.contexts.chat.messenger.messages.constants :as messages.constants]))
|
||||||
|
|
||||||
|
(def permission-context-height 46)
|
||||||
|
|
||||||
(defn keyboard-avoiding-container
|
(defn keyboard-avoiding-container
|
||||||
[theme]
|
[theme]
|
||||||
{:flex 1
|
{:flex 1
|
||||||
|
@ -73,3 +75,8 @@
|
||||||
(reanimated/apply-animations-to-style
|
(reanimated/apply-animations-to-style
|
||||||
{:top top}
|
{:top top}
|
||||||
{:row-gap 16}))
|
{:row-gap 16}))
|
||||||
|
|
||||||
|
(defn permission-context-sheet
|
||||||
|
[margin-bottom?]
|
||||||
|
{:flex 3 ;; Pushes composer to bottom
|
||||||
|
:margin-bottom (when margin-bottom? permission-context-height)})
|
||||||
|
|
|
@ -400,16 +400,18 @@
|
||||||
{:keys [keyboard-shown]} (hooks/use-keyboard)
|
{:keys [keyboard-shown]} (hooks/use-keyboard)
|
||||||
{window-height :height} (rn/get-window)
|
{window-height :height} (rn/get-window)
|
||||||
context (rf/sub [:chats/current-chat-message-list-view-context])
|
context (rf/sub [:chats/current-chat-message-list-view-context])
|
||||||
|
able-to-send-message? (:able-to-send-message? context)
|
||||||
messages (rf/sub [:chats/raw-chat-messages-stream chat-id])
|
messages (rf/sub [:chats/raw-chat-messages-stream chat-id])
|
||||||
|
margin-bottom? (and community-channel? (not able-to-send-message?))
|
||||||
recording? (rf/sub [:chats/recording?])]
|
recording? (rf/sub [:chats/recording?])]
|
||||||
[rn/view {:style {:flex 3}} ;; Pushes composer to bottom
|
[rn/view {:style (style/permission-context-sheet margin-bottom?)}
|
||||||
[rn/view {:style {:flex-shrink 1}} ;; Keeps flat list on top
|
[rn/view {:style {:flex-shrink 1}} ;; Keeps flat list on top
|
||||||
[reanimated/flat-list
|
[reanimated/flat-list
|
||||||
{:key-fn list-key-fn
|
{:key-fn list-key-fn
|
||||||
:ref list-ref
|
:ref list-ref
|
||||||
:bounces false
|
:bounces false
|
||||||
:header [:<>
|
:header [:<>
|
||||||
[list-header insets (:able-to-send-message? context)]
|
[list-header insets able-to-send-message?]
|
||||||
(when (= (:chat-type chat) constants/private-group-chat-type)
|
(when (= (:chat-type chat) constants/private-group-chat-type)
|
||||||
[list-group-chat-header chat])]
|
[list-group-chat-header chat])]
|
||||||
:footer [list-footer
|
:footer [list-footer
|
||||||
|
|
|
@ -228,6 +228,7 @@
|
||||||
community? (some? current-community)
|
community? (some? current-community)
|
||||||
group-admin? (contains? admins current-public-key)
|
group-admin? (contains? admins current-public-key)
|
||||||
community-admin? (get current-community :admin false)
|
community-admin? (get current-community :admin false)
|
||||||
|
community-member? (get current-community :is-member? false)
|
||||||
|
|
||||||
message-pin-enabled
|
message-pin-enabled
|
||||||
(cond public? false
|
(cond public? false
|
||||||
|
@ -247,6 +248,7 @@
|
||||||
:chat-id chat-id
|
:chat-id chat-id
|
||||||
:in-pinned-view? (boolean in-pinned-view?)
|
:in-pinned-view? (boolean in-pinned-view?)
|
||||||
:able-to-send-message? able-to-send-message?
|
:able-to-send-message? able-to-send-message?
|
||||||
|
:community-member? community-member?
|
||||||
:message-pin-enabled message-pin-enabled
|
:message-pin-enabled message-pin-enabled
|
||||||
:can-delete-message-for-everyone? can-delete-message-for-everyone?})))
|
:can-delete-message-for-everyone? can-delete-message-for-everyone?})))
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue