Compare commits
2
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fc3e398061 | ||
|
|
f549f9949c |
@@ -35,5 +35,3 @@ LOCAL_PAIRING_ENABLED=1
|
||||
FAST_CREATE_COMMUNITY_ENABLED=1
|
||||
TEST_NETWORKS_ENABLED=1
|
||||
SHOW_NOT_IMPLEMENTED_FEATURES=1
|
||||
DELETE_MESSAGE_FOR_ME_UNDO_TIME_LIMIT=10000
|
||||
DELETE_MESSAGE_UNDO_TIME_LIMIT=10000
|
||||
|
||||
@@ -7,14 +7,8 @@
|
||||
:align-items :center})
|
||||
|
||||
(def image
|
||||
{:width 72
|
||||
:height 72})
|
||||
|
||||
(def image-container
|
||||
{:width 80
|
||||
:height 80
|
||||
:align-items :center
|
||||
:justify-content :center})
|
||||
{:width 80
|
||||
:height 80})
|
||||
|
||||
(def text-container
|
||||
{:margin-top 12
|
||||
|
||||
@@ -15,10 +15,9 @@
|
||||
[rn/view {:style (merge styles/container container-style)}
|
||||
(if placeholder?
|
||||
[rn/view {:style styles/image-placeholder}]
|
||||
[rn/view {:style styles/image-container}
|
||||
[fast-image/fast-image
|
||||
{:style styles/image
|
||||
:source image}]])
|
||||
[fast-image/fast-image
|
||||
{:style styles/image
|
||||
:source image}])
|
||||
[rn/view {:style styles/text-container}
|
||||
[text/text
|
||||
{:style (styles/title blur?)
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
[quo.theme :as quo.theme]
|
||||
[react-native.core :as rn]
|
||||
[react-native.svg :as svg]
|
||||
[reagent.core :as reagent]
|
||||
[schema.core :as schema]))
|
||||
|
||||
(defn- circle
|
||||
@@ -35,117 +36,116 @@
|
||||
:stroke-width "1"}]])
|
||||
|
||||
(defn link-linear
|
||||
[{:keys [source theme]}]
|
||||
(let [[container-width
|
||||
set-container-width] (rn/use-state 100)
|
||||
stroke-color (colors/resolve-color source theme)
|
||||
fill-color (colors/theme-colors colors/white colors/neutral-90 theme)
|
||||
on-layout (rn/use-callback #(set-container-width
|
||||
(oget % :nativeEvent :layout :width)))]
|
||||
[rn/view
|
||||
{:style style/link-linear-container
|
||||
:on-layout on-layout}
|
||||
[line stroke-color container-width]
|
||||
[rn/view {:style style/left-circle-container}
|
||||
[circle fill-color stroke-color]]
|
||||
[rn/view {:style style/right-circle-container}
|
||||
[circle fill-color stroke-color]]]))
|
||||
[]
|
||||
(let [container-width (reagent/atom 100)]
|
||||
(fn [{:keys [source theme]}]
|
||||
(let [stroke-color (colors/resolve-color source theme)
|
||||
fill-color (colors/theme-colors colors/white colors/neutral-90 theme)]
|
||||
[rn/view
|
||||
{:style style/link-linear-container
|
||||
:on-layout (fn [e]
|
||||
(reset! container-width
|
||||
(oget e :nativeEvent :layout :width)))}
|
||||
[line stroke-color @container-width]
|
||||
[rn/view {:style style/left-circle-container}
|
||||
[circle fill-color stroke-color]]
|
||||
[rn/view {:style style/right-circle-container}
|
||||
[circle fill-color stroke-color]]]))))
|
||||
|
||||
(defn link-1x
|
||||
[{:keys [source destination theme]}]
|
||||
(let [[container-width
|
||||
set-container-width] (rn/use-state 100)
|
||||
stroke-color "url(#gradient)"
|
||||
source-color (colors/resolve-color source theme)
|
||||
destination-color (colors/resolve-color destination theme)
|
||||
fill-color (colors/theme-colors colors/white colors/neutral-90 theme)
|
||||
view-box (str "0 0 " container-width " 58")
|
||||
side-lines-path (helpers/calculate-side-lines-path-1x container-width)
|
||||
central-transform (helpers/calculate-transform container-width)
|
||||
on-layout (rn/use-callback #(set-container-width
|
||||
(oget % :nativeEvent :layout :width)))]
|
||||
[rn/view
|
||||
{:style style/link-1x-container
|
||||
:on-layout on-layout}
|
||||
[svg/svg
|
||||
{:xmlns "http://www.w3.org/2000/svg"
|
||||
:height "100%"
|
||||
:width "100%"
|
||||
:view-box view-box
|
||||
:fill :none}
|
||||
[svg/path
|
||||
{:d (:left side-lines-path)
|
||||
:stroke source-color}]
|
||||
[svg/path
|
||||
{:d
|
||||
"M63 1L53.6356 1C42.5899 1 33.6356 9.9543 33.6356 21L33.6356 37C33.6356 48.0457 24.6813 57 13.6356 57L2.85889e-05 57"
|
||||
:transform central-transform
|
||||
:stroke stroke-color}]
|
||||
[svg/path
|
||||
{:d (:right side-lines-path)
|
||||
:stroke destination-color}]
|
||||
[svg/defs
|
||||
[svg/linear-gradient
|
||||
{:id "gradient"
|
||||
:x1 "72.271"
|
||||
:x2 "82.385"
|
||||
:y1 "5"
|
||||
:y2 "34.155"
|
||||
:gradient-units "userSpaceOnUse"}
|
||||
[svg/stop {:stop-color (colors/resolve-color destination theme)}]
|
||||
[svg/stop {:offset "1" :stop-color (colors/resolve-color source theme)}]]]]
|
||||
[rn/view {:style style/bottom-left-circle-container}
|
||||
[circle fill-color source-color]]
|
||||
[rn/view {:style style/top-right-circle-container}
|
||||
[circle fill-color destination-color]]]))
|
||||
[]
|
||||
(let [container-width (reagent/atom 100)
|
||||
stroke-color "url(#gradient)"]
|
||||
(fn [{:keys [source destination theme]}]
|
||||
(let [source-color (colors/resolve-color source theme)
|
||||
destination-color (colors/resolve-color destination theme)
|
||||
fill-color (colors/theme-colors colors/white colors/neutral-90 theme)
|
||||
view-box (str "0 0 " @container-width " 58")
|
||||
side-lines-path (helpers/calculate-side-lines-path-1x @container-width)
|
||||
central-transform (helpers/calculate-transform @container-width)]
|
||||
[rn/view
|
||||
{:style style/link-1x-container
|
||||
:on-layout (fn [e]
|
||||
(reset! container-width
|
||||
(oget e :nativeEvent :layout :width)))}
|
||||
[svg/svg
|
||||
{:xmlns "http://www.w3.org/2000/svg"
|
||||
:height "100%"
|
||||
:width "100%"
|
||||
:view-box view-box
|
||||
:fill :none}
|
||||
[svg/path
|
||||
{:d (:left side-lines-path)
|
||||
:stroke source-color}]
|
||||
[svg/path
|
||||
{:d
|
||||
"M63 1L53.6356 1C42.5899 1 33.6356 9.9543 33.6356 21L33.6356 37C33.6356 48.0457 24.6813 57 13.6356 57L2.85889e-05 57"
|
||||
:transform central-transform
|
||||
:stroke stroke-color}]
|
||||
[svg/path
|
||||
{:d (:right side-lines-path)
|
||||
:stroke destination-color}]
|
||||
[svg/defs
|
||||
[svg/linear-gradient
|
||||
{:id "gradient"
|
||||
:x1 "72.271"
|
||||
:x2 "82.385"
|
||||
:y1 "5"
|
||||
:y2 "34.155"
|
||||
:gradient-units "userSpaceOnUse"}
|
||||
[svg/stop {:stop-color (colors/resolve-color destination theme)}]
|
||||
[svg/stop {:offset "1" :stop-color (colors/resolve-color source theme)}]]]]
|
||||
[rn/view {:style style/bottom-left-circle-container}
|
||||
[circle fill-color source-color]]
|
||||
[rn/view {:style style/top-right-circle-container}
|
||||
[circle fill-color destination-color]]]))))
|
||||
|
||||
(defn link-2x
|
||||
[{:keys [source destination theme]}]
|
||||
(let [[container-width
|
||||
set-container-width] (rn/use-state 100)
|
||||
stroke-color "url(#gradient)"
|
||||
source-color (colors/resolve-color source theme)
|
||||
destination-color (colors/resolve-color destination theme)
|
||||
fill-color (colors/theme-colors colors/white colors/neutral-90 theme)
|
||||
view-box (str "0 0 " container-width " 114")
|
||||
side-lines-path (helpers/calculate-side-lines-path-2x container-width)
|
||||
central-transform (helpers/calculate-transform container-width)
|
||||
on-layout (rn/use-callback #(set-container-width
|
||||
(oget % :nativeEvent :layout :width)))]
|
||||
[rn/view
|
||||
{:style style/link-2x-container
|
||||
:on-layout on-layout}
|
||||
[svg/svg
|
||||
{:xmlns "http://www.w3.org/2000/svg"
|
||||
:height "100%"
|
||||
:width "100%"
|
||||
:view-box view-box
|
||||
:fill :none}
|
||||
[svg/path
|
||||
{:d (:left side-lines-path)
|
||||
:stroke source-color}]
|
||||
[svg/path
|
||||
{:d
|
||||
"M62.9999 1L53.6356 1C42.5899 1 33.6356 9.9543 33.6356 21L33.6356 93C33.6356 104.046 24.6813 113 13.6356 113L5.71778e-05 113"
|
||||
:transform central-transform
|
||||
:stroke stroke-color}]
|
||||
[svg/path
|
||||
{:d (:right side-lines-path)
|
||||
:stroke destination-color}]
|
||||
[svg/defs
|
||||
[svg/linear-gradient
|
||||
{:id "gradient"
|
||||
:x1 "72.2711"
|
||||
:y1 "5.00001"
|
||||
:x2 "102.867"
|
||||
:y2 "49.0993"
|
||||
:gradient-units "userSpaceOnUse"}
|
||||
[svg/stop {:stop-color (colors/resolve-color destination theme)}]
|
||||
[svg/stop {:offset "1" :stop-color (colors/resolve-color source theme)}]]]]
|
||||
[rn/view {:style style/bottom-left-circle-container}
|
||||
[circle fill-color source-color]]
|
||||
[rn/view {:style style/top-right-circle-container}
|
||||
[circle fill-color destination-color]]]))
|
||||
[]
|
||||
(let [container-width (reagent/atom 100)
|
||||
stroke-color "url(#gradient)"]
|
||||
(fn [{:keys [source destination theme]}]
|
||||
(let [source-color (colors/resolve-color source theme)
|
||||
destination-color (colors/resolve-color destination theme)
|
||||
fill-color (colors/theme-colors colors/white colors/neutral-90 theme)
|
||||
view-box (str "0 0 " @container-width " 114")
|
||||
side-lines-path (helpers/calculate-side-lines-path-2x @container-width)
|
||||
central-transform (helpers/calculate-transform @container-width)]
|
||||
[rn/view
|
||||
{:style style/link-2x-container
|
||||
:on-layout #(reset! container-width
|
||||
(oget % :nativeEvent :layout :width))}
|
||||
[svg/svg
|
||||
{:xmlns "http://www.w3.org/2000/svg"
|
||||
:height "100%"
|
||||
:width "100%"
|
||||
:view-box view-box
|
||||
:fill :none}
|
||||
[svg/path
|
||||
{:d (:left side-lines-path)
|
||||
:stroke source-color}]
|
||||
[svg/path
|
||||
{:d
|
||||
"M62.9999 1L53.6356 1C42.5899 1 33.6356 9.9543 33.6356 21L33.6356 93C33.6356 104.046 24.6813 113 13.6356 113L5.71778e-05 113"
|
||||
:transform central-transform
|
||||
:stroke stroke-color}]
|
||||
[svg/path
|
||||
{:d (:right side-lines-path)
|
||||
:stroke destination-color}]
|
||||
[svg/defs
|
||||
[svg/linear-gradient
|
||||
{:id "gradient"
|
||||
:x1 "72.2711"
|
||||
:y1 "5.00001"
|
||||
:x2 "102.867"
|
||||
:y2 "49.0993"
|
||||
:gradient-units "userSpaceOnUse"}
|
||||
[svg/stop {:stop-color (colors/resolve-color destination theme)}]
|
||||
[svg/stop {:offset "1" :stop-color (colors/resolve-color source theme)}]]]]
|
||||
[rn/view {:style style/bottom-left-circle-container}
|
||||
[circle fill-color source-color]]
|
||||
[rn/view {:style style/top-right-circle-container}
|
||||
[circle fill-color destination-color]]]))))
|
||||
|
||||
(defn- view-internal
|
||||
[{:keys [shape container-style] :as props}]
|
||||
|
||||
@@ -40,15 +40,13 @@
|
||||
params: sequence - A positional sequence of zero or more arguments.
|
||||
|
||||
on-success/on-error: function/vector (optional) - When a function, it will be
|
||||
called with the transformed response and id (request-id) as the argument.
|
||||
When a vector, it is expected to be a valid re-frame event vector, and the event
|
||||
will be dispatched with the transformed response and id conj'ed at the end.
|
||||
called with the transformed response as the sole argument. When a vector, it
|
||||
is expected to be a valid re-frame event vector, and the event will be
|
||||
dispatched with the transformed response conj'ed at the end.
|
||||
|
||||
js-response: boolean - When non-nil, the successful response will not be
|
||||
recursively converted to Clojure data structures. Default: nil.
|
||||
|
||||
id: (optional) - id passed while making the RPC call will be returned in response
|
||||
|
||||
number-of-retries: integer - The maximum number of retries in case of failure.
|
||||
Default: nil.
|
||||
|
||||
@@ -58,14 +56,14 @@
|
||||
Note that on-error is optional, but if not provided, a default implementation
|
||||
will be used.
|
||||
"
|
||||
[{:keys [method params on-success on-error js-response id] :as arg}]
|
||||
[{:keys [method params on-success on-error js-response] :as arg}]
|
||||
(let [params (or params [])
|
||||
on-error (or on-error
|
||||
(on-error-retry call arg)
|
||||
#(log/warn :json-rpc/error method :error % :params params))]
|
||||
(native-module/call-private-rpc
|
||||
(transforms/clj->json {:jsonrpc "2.0"
|
||||
:id (or id 1)
|
||||
:id 1
|
||||
:method method
|
||||
:params params})
|
||||
(fn [raw-response]
|
||||
@@ -81,13 +79,12 @@
|
||||
(rf/dispatch (conj on-error error))
|
||||
(on-error error)))
|
||||
(when on-success
|
||||
(let [result (if js-response
|
||||
(.-result response-js)
|
||||
(transforms/js->clj (.-result response-js)))
|
||||
request-id (.-id response-js)]
|
||||
(let [result (if js-response
|
||||
(.-result response-js)
|
||||
(transforms/js->clj (.-result response-js)))]
|
||||
(if (vector? on-success)
|
||||
(rf/dispatch (conj on-success result request-id))
|
||||
(on-success result request-id)))))))))))
|
||||
(rf/dispatch (conj on-success result))
|
||||
(on-success result)))))))))))
|
||||
|
||||
(re-frame/reg-fx
|
||||
:json-rpc/call
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
(:require
|
||||
[clojure.string :as string]
|
||||
[react-native.config :as react-native-config]
|
||||
[status-im.constants :as constants]
|
||||
[utils.ens.core :as utils.ens]
|
||||
[utils.ethereum.chain :as chain]))
|
||||
|
||||
@@ -71,18 +70,6 @@
|
||||
; currently not supported in status-go
|
||||
(def enable-remove-profile-picture? false)
|
||||
|
||||
(defn env-variable->int
|
||||
[env-var-name default-value]
|
||||
(js/parseInt (get-config env-var-name default-value)))
|
||||
|
||||
(def delete-message-for-me-undo-time-limit-ms
|
||||
(env-variable->int :DELETE_MESSAGE_FOR_ME_UNDO_TIME_LIMIT
|
||||
constants/delete-message-for-me-undo-time-limit-ms))
|
||||
|
||||
(def delete-message-undo-time-limit-ms
|
||||
(env-variable->int :DELETE_MESSAGE_UNDO_TIME_LIMIT
|
||||
constants/delete-message-undo-time-limit-ms))
|
||||
|
||||
(def verify-transaction-chain-id (js/parseInt (get-config :VERIFY_TRANSACTION_CHAIN_ID "1")))
|
||||
(def verify-transaction-url
|
||||
(if (= :mainnet (chain/chain-id->chain-keyword verify-transaction-chain-id))
|
||||
|
||||
@@ -8,13 +8,13 @@
|
||||
:margin-bottom (when-not community? 12)})
|
||||
|
||||
(def community-tag-container
|
||||
{:margin-horizontal 20
|
||||
:margin-top 4
|
||||
:margin-bottom 12})
|
||||
{:margin-horizontal 20 :margin-top 4 :margin-bottom 12})
|
||||
|
||||
(def no-pinned-messages-container
|
||||
{:justify-content :center
|
||||
:align-items :center})
|
||||
:align-items :center
|
||||
:margin 12
|
||||
:margin-bottom (when platform/android? 12)})
|
||||
|
||||
(def list-footer
|
||||
{:height (when platform/android? 12)})
|
||||
|
||||
@@ -59,15 +59,12 @@
|
||||
:channel-name (:chat-name current-chat)}])]
|
||||
(if (pos? (count pinned))
|
||||
[rn/flat-list
|
||||
{:data pinned
|
||||
:render-data (assoc render-data
|
||||
:disable-message-long-press?
|
||||
disable-message-long-press?)
|
||||
:render-fn message-render-fn
|
||||
:footer [rn/view {:style style/list-footer}]
|
||||
:content-container-style {:padding-top 8}
|
||||
:key-fn list-key-fn
|
||||
:separator [quo/separator {:style {:margin-vertical 8}}]}]
|
||||
{:data pinned
|
||||
:render-data (assoc render-data :disable-message-long-press? disable-message-long-press?)
|
||||
:render-fn message-render-fn
|
||||
:footer [rn/view {:style style/list-footer}]
|
||||
:key-fn list-key-fn
|
||||
:separator [quo/separator {:style {:margin-vertical 8}}]}]
|
||||
[empty-pinned-messages-state
|
||||
{:theme theme}])]))
|
||||
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
(:require
|
||||
[quo.core :as quo]
|
||||
[quo.theme :as quo.theme]
|
||||
[react-native.core :as rn]
|
||||
[status-im.constants :as constants]
|
||||
[status-im.contexts.chat.messenger.messages.drawers.view :as drawers]
|
||||
[utils.re-frame :as rf]))
|
||||
@@ -55,7 +54,7 @@
|
||||
(defn- view-internal
|
||||
[{:keys [message-id chat-id pinned-by preview? theme]} user-message-content]
|
||||
(let [reactions (rf/sub [:chats/message-reactions message-id chat-id])]
|
||||
[rn/view {:style {:padding-bottom 12}}
|
||||
[:<>
|
||||
(when (seq reactions)
|
||||
[quo/react
|
||||
{:container-style {:margin-left 44
|
||||
|
||||
+18
-17
@@ -9,20 +9,21 @@
|
||||
link-previews? (rf/sub [:chats/message-link-previews? chat-id message-id])]
|
||||
(when (seq status-link-previews)
|
||||
[rn/view {:style {:margin-top (when link-previews? 8)}}
|
||||
(for [{:keys [url community]} status-link-previews]
|
||||
(when community
|
||||
(let [{community-description :description
|
||||
community-icon :icon
|
||||
community-banner :banner
|
||||
community-name :display-name
|
||||
members-count :members-count} community]
|
||||
^{:key url}
|
||||
[quo/internal-link-card
|
||||
{:type :community
|
||||
:size :message
|
||||
:description community-description
|
||||
:members-count members-count
|
||||
:title community-name
|
||||
:banner (:url community-banner)
|
||||
:icon (:url community-icon)
|
||||
:on-press #(rf/dispatch [:universal-links/handle-url url])}])))])))
|
||||
(doall
|
||||
(for [{:keys [url community]} status-link-previews]
|
||||
(when community
|
||||
(let [{community-description :description
|
||||
community-icon :icon
|
||||
community-banner :banner
|
||||
community-name :display-name
|
||||
members-count :members-count} community]
|
||||
^{:key url}
|
||||
[quo/internal-link-card
|
||||
{:type :community
|
||||
:size :message
|
||||
:description community-description
|
||||
:members-count members-count
|
||||
:title community-name
|
||||
:banner (:url community-banner)
|
||||
:icon (:url community-icon)
|
||||
:on-press #(rf/dispatch [:universal-links/handle-url url])}]))))])))
|
||||
|
||||
@@ -16,17 +16,16 @@
|
||||
(assoc :margin-top 4)))
|
||||
|
||||
(defn user-message-content
|
||||
[{:keys [outgoing outgoing-status six-reactions? window-scale small-screen? in-pinned-view?]}]
|
||||
[{:keys [outgoing outgoing-status six-reactions? window-scale small-screen?]}]
|
||||
{:border-radius 16
|
||||
:padding-horizontal 8
|
||||
:padding-top (if in-pinned-view? 8 4)
|
||||
:padding-bottom (if in-pinned-view?
|
||||
5
|
||||
(when (or small-screen?
|
||||
(and
|
||||
(> 3 window-scale)
|
||||
six-reactions?))
|
||||
(* message-padding-scaling-ratio window-scale)))
|
||||
:padding-top 4
|
||||
:padding-bottom (if (or small-screen?
|
||||
(and
|
||||
(> 3 window-scale)
|
||||
six-reactions?))
|
||||
(* message-padding-scaling-ratio window-scale)
|
||||
4)
|
||||
:opacity (if (and outgoing (= outgoing-status :sending))
|
||||
0.5
|
||||
1)})
|
||||
|
||||
@@ -152,7 +152,7 @@
|
||||
[]
|
||||
(let [show-delivery-state? (reagent/atom false)]
|
||||
(fn [{:keys [message-data context keyboard-shown? show-reactions? in-reaction-and-action-menu?
|
||||
show-user-info? preview? in-pinned-view? theme]}]
|
||||
show-user-info? preview? theme]}]
|
||||
(let [{:keys [content-type quoted-message content outgoing outgoing-status pinned-by pinned
|
||||
last-in-group? message-id chat-id]} message-data
|
||||
{:keys [disable-message-long-press?]} context
|
||||
@@ -195,8 +195,7 @@
|
||||
:outgoing-status outgoing-status
|
||||
:small-screen? rn/small-screen?
|
||||
:window-scale window-scale
|
||||
:six-reactions? six-reactions?
|
||||
:in-pinned-view? in-pinned-view?})
|
||||
:six-reactions? six-reactions?})
|
||||
:on-press (fn []
|
||||
(if (and platform/ios? keyboard-shown?)
|
||||
(do
|
||||
@@ -260,7 +259,7 @@
|
||||
|
||||
(when @show-delivery-state?
|
||||
[status/status outgoing-status])])]
|
||||
(when (and show-reactions? (seq reactions))
|
||||
(when show-reactions?
|
||||
[reactions/message-reactions-row (assoc message-data :preview? preview?)
|
||||
[rn/view {:pointer-events :none}
|
||||
[user-message-content-internal
|
||||
@@ -338,5 +337,4 @@
|
||||
{:message-data message-data
|
||||
:context context
|
||||
:keyboard-shown? keyboard-shown?
|
||||
:show-reactions? true
|
||||
:in-pinned-view? in-pinned-view?}])]))
|
||||
:show-reactions? true}])]))
|
||||
|
||||
@@ -7,7 +7,6 @@
|
||||
[react-native.gesture :as gesture]
|
||||
[reagent.core :as reagent]
|
||||
[status-im.common.contact-list-item.view :as contact-list-item]
|
||||
[status-im.config :as config]
|
||||
[status-im.constants :as constants]
|
||||
[status-im.contexts.chat.messenger.composer.reply.view :as reply]
|
||||
[status-im.contexts.chat.messenger.messages.drawers.style :as style]
|
||||
@@ -141,7 +140,7 @@
|
||||
(rf/dispatch
|
||||
[:hide-bottom-sheet])
|
||||
(rf/dispatch [:chat.ui/delete-message-for-me message-data
|
||||
config/delete-message-for-me-undo-time-limit-ms]))
|
||||
constants/delete-message-for-me-undo-time-limit-ms]))
|
||||
|
||||
:label (i18n/label :t/delete-for-me)
|
||||
:icon :i/delete
|
||||
@@ -156,7 +155,7 @@
|
||||
:on-press (fn []
|
||||
(rf/dispatch [:hide-bottom-sheet])
|
||||
(rf/dispatch [:chat.ui/delete-message message-data
|
||||
config/delete-message-undo-time-limit-ms]))
|
||||
constants/delete-message-undo-time-limit-ms]))
|
||||
:label (i18n/label :t/delete-for-everyone)
|
||||
:icon :i/delete
|
||||
:id :delete-for-all}])))
|
||||
|
||||
@@ -130,9 +130,6 @@
|
||||
[cofx chat-id]
|
||||
(navigation/show-bottom-sheet
|
||||
cofx
|
||||
{:padding-bottom-override 21
|
||||
:content (fn [] [pinned-messages-menu/view
|
||||
{:chat-id chat-id
|
||||
:disable-message-long-press? (not= :chat
|
||||
(get-in cofx
|
||||
[:db :view-id]))}])}))
|
||||
{:content (fn [] [pinned-messages-menu/view
|
||||
{:chat-id chat-id
|
||||
:disable-message-long-press? (not= :chat (get-in cofx [:db :view-id]))}])}))
|
||||
|
||||
@@ -73,25 +73,19 @@
|
||||
|
||||
(defn check-permissions-to-join-for-selection
|
||||
[{:keys [db]} [community-id addresses]]
|
||||
(let [request-id (rand-int 10000000)]
|
||||
(if (empty? addresses)
|
||||
;; When there are no addresses we can't just check permissions, otherwise
|
||||
;; status-go will consider all possible addresses and the user will see the
|
||||
;; incorrect highest permission role.
|
||||
{:db (update db :communities/permissions-checks-for-selection dissoc community-id)}
|
||||
{:db (update-in db
|
||||
[:communities/permissions-checks-for-selection community-id]
|
||||
assoc
|
||||
:checking? true
|
||||
:latest-request-id request-id)
|
||||
:fx [[:json-rpc/call
|
||||
[{:method :wakuext_checkPermissionsToJoinCommunity
|
||||
:params [{:communityId community-id :addresses addresses}]
|
||||
:id request-id
|
||||
:on-success [:communities/check-permissions-to-join-during-selection-success
|
||||
community-id]
|
||||
:on-error [:communities/check-permissions-to-join-during-selection-failure
|
||||
community-id addresses]}]]]})))
|
||||
(if (empty? addresses)
|
||||
;; When there are no addresses we can't just check permissions, otherwise
|
||||
;; status-go will consider all possible addresses and the user will see the
|
||||
;; incorrect highest permission role.
|
||||
{:db (update db :communities/permissions-checks-for-selection dissoc community-id)}
|
||||
{:db (assoc-in db [:communities/permissions-checks-for-selection community-id :checking?] true)
|
||||
:fx [[:json-rpc/call
|
||||
[{:method :wakuext_checkPermissionsToJoinCommunity
|
||||
:params [{:communityId community-id :addresses addresses}]
|
||||
:on-success [:communities/check-permissions-to-join-during-selection-success
|
||||
community-id]
|
||||
:on-error [:communities/check-permissions-to-join-during-selection-failure
|
||||
community-id addresses]}]]]}))
|
||||
|
||||
;; This event should be used to check permissions temporarily because it won't
|
||||
;; mutate the state `:communities/permissions-check` (used by many other
|
||||
@@ -100,14 +94,12 @@
|
||||
check-permissions-to-join-for-selection)
|
||||
|
||||
(rf/reg-event-fx :communities/check-permissions-to-join-during-selection-success
|
||||
(fn [{:keys [db]} [community-id result request-id]]
|
||||
(when (= (get-in db [:communities/permissions-checks-for-selection community-id :latest-request-id])
|
||||
request-id)
|
||||
{:db (assoc-in db
|
||||
[:communities/permissions-checks-for-selection community-id]
|
||||
{:checking? false
|
||||
:based-on-client-selection? true
|
||||
:check result})})))
|
||||
(fn [{:keys [db]} [community-id result]]
|
||||
{:db (assoc-in db
|
||||
[:communities/permissions-checks-for-selection community-id]
|
||||
{:checking? false
|
||||
:based-on-client-selection? true
|
||||
:check result})}))
|
||||
|
||||
(rf/reg-event-fx :communities/check-permissions-to-join-during-selection-failure
|
||||
(fn [_ [community-id addresses error]]
|
||||
|
||||
@@ -49,13 +49,12 @@
|
||||
[:screen/onboarding.enter-seed-phrase
|
||||
:screen/onboarding.new-to-status]])}]
|
||||
[rn/view {:style style/space-between-suboptions}]
|
||||
(when config/show-not-implemented-features?
|
||||
[quo/small-option-card
|
||||
{:variant :icon
|
||||
:title (i18n/label :t/use-keycard)
|
||||
:subtitle (i18n/label :t/use-keycard-subtitle)
|
||||
:image (resources/get-image :use-keycard)
|
||||
:on-press #(js/alert "TODO: to be implemented")}])]]))
|
||||
[quo/small-option-card
|
||||
{:variant :icon
|
||||
:title (i18n/label :t/use-keycard)
|
||||
:subtitle (i18n/label :t/use-keycard-subtitle)
|
||||
:image (resources/get-image :use-keycard)
|
||||
:on-press #(js/alert "TODO: to be implemented")}]]]))
|
||||
|
||||
(defn getting-started-doc
|
||||
[]
|
||||
|
||||
@@ -71,10 +71,13 @@
|
||||
(defn on-qr-code-scanned
|
||||
[scanned-text]
|
||||
(cond
|
||||
(or
|
||||
(text-for-url-path? scanned-text router/community-with-data-path)
|
||||
(text-for-url-path? scanned-text router/channel-path))
|
||||
(debounce/debounce-and-dispatch [:universal-links/handle-url scanned-text] 300)
|
||||
(text-for-url-path? scanned-text router/community-with-data-path)
|
||||
;; TODO: https://github.com/status-im/status-mobile/issues/18743
|
||||
nil
|
||||
|
||||
(text-for-url-path? scanned-text router/channel-path)
|
||||
;; TODO: https://github.com/status-im/status-mobile/issues/18743
|
||||
nil
|
||||
|
||||
(text-for-url-path? scanned-text router/user-with-data-path)
|
||||
(let [address (extract-id scanned-text)]
|
||||
|
||||
Reference in New Issue
Block a user