Commit Graph

5710 Commits

Author SHA1 Message Date
Mohamed Javid 54e347eaea
Bottom Sheet Fixes (#17609)
This commit fixes the following issues in the bottom sheet:

- the sheet is cut off at the bottom in the shell (dark blur) theme (the drawers in the onboarding/login flow)
- the incorrect background in the shell (dark blur) theme (the drawers in the onboarding/login flow)
Bug	
- the spacing at the bottom is doubled
- the gradient cover is not shown in the bottom sheet
- the spacing between the selected item and the bottom sheet
- the bottom sheet type in "Create Profile" and "Activity Center" screens

---------

Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2023-10-11 22:05:07 +05:30
John Ngei 5ceca3201d
remove left over logs 2023-10-11 17:09:42 +03:00
Jamie Caprani b532966e85
chore: slider button - add error type, blur variant and fix small ui bug (#17473) 2023-10-11 03:39:26 -07:00
Volodymyr Kozieiev 919ee4b9ab
wallet activity design followup fixes (#17590) 2023-10-10 14:54:26 +01:00
Omar Basem d664653921
Wallet: dApps Tab (#17587)
* feat: dapps tab
2023-10-10 16:28:05 +04:00
Mohsen 36dd828a55
[#17446] fix: Display name is not shown in chats after sync (#17591) 2023-10-10 14:36:40 +03:00
Omar Basem bcc175041a
Wallet: About Tab (#17556)
* wallet about tab
2023-10-10 09:30:10 +04:00
Ibrahem Khalil d4cc0189d2
Disable scroll to the bottom button when composer is active. 2023-10-09 20:33:20 +03:00
Volodymyr Kozieiev 1770ff24ce
Collectible details page (#17520)
Collectible details page
2023-10-09 14:18:43 +01:00
Lungu Cristian 265d9be6c2
Follow-up quo2 reaction selector components (#17304)
* ref: refactored react/react-selector/reactions-selector

feat: added preview multi-select descriptor

feat: finished component

ref: fixed linting

feat: added pinned styles to all reactions

lint: fixed linting

ref: preview customizer for reactions-selector

lint: fixed linting

fix: preview select bg

ref: destructured reaction

* feat: added pinned prop in chat messages

* fix: removed status_im2 require inside quo2 component

* fix: addressed review comments

* lint: fixed linting

* fix: added missing theme arg to theme-color

* chore: removed unnecessary FIXME

* fix: message reactions not working on press
2023-10-09 12:44:12 +03:00
Lungu Cristian b432aab701
Changes to onboarding/new-to-status (quo/fonts/spacings/copy) (#17562)
* fix: changes to onboarding/new-to-status (quo/fonts/spacings/copy)

* e2e: updated button  locator

---------

Co-authored-by: Yevheniia Berdnyk <ie.berdnyk@gmail.com>
2023-10-09 10:45:28 +03:00
Ulises Manuel 1abd1e9420
[#16329] QR code variants (#17221)
* Rename wallet-user-avatar's `:color` prop to `:customization-color`
* Refactor QR code component and implement all variants
  - Improve preview screen
* Update QR code usages
* Remove `status-im2.common.qr-code-viewer.view/qr-code-view` component
to keep only one implementation.
* Remove the node dependency:
  "qrcode": "^1.4.1"
2023-10-08 17:42:58 -06:00
Ibrahem Khalil 4dc834b079
Faded first line of composer (#17489) 2023-10-07 11:12:10 +03:00
Mohamed Javid c6a9148e20
[Fix] SVG Icon color (#17561)
This commit fixes the "X" mark in the clear icon displayed in inputs and URL preview components by updating the props for "svg-icon" to add the "color" and "color-2" keys only if it's present and valid.

Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2023-10-07 13:20:44 +05:30
BalogunofAfrica b88dcf1072
fix: back button on 1:1 chat (#17544)
* fix: back button on 1:1 chat

* fix: show close icon only for 1:1 and community chat

* fix: use close icon for only 1:1 chat
2023-10-06 12:47:29 +01:00
yqrashawn afbd890a04
fix: several bugs in 1.25 design feedback (#17548) 2023-10-06 15:32:33 +08:00
John Ngei 933a5a1a9e
1-1 chats bug fixes
* removed horizontal padding for separator line

* fixed: page-nav button backgrounds visibility

* updated top margin

* updated selected item top margin

* fixed: author and  message margins
2023-10-06 00:45:26 +03:00
Icaro Motta 6e897f0ea6
Migrate away from rf/defn and rf/merge (first step) (#17451)
This commit shows how to move away from rf/defn
f12c7401d1/src/utils/re_frame.clj (L1-L90)
& rf/merge
f12c7401d1/src/utils/re_frame.cljs (L39-L85)
and why we should do it.

## Problems

Before jumping to solutions, let's understand the problems first, in no order of
importance.

### Problem 1: Cyclic dependencies

If you ever tried to move event handlers or the functions used inside them to
different files in status-mobile, you probably stumbled in cyclic dependency
errors.

When an event is registered in re-frame, it is globally available for any other
place to dispatch. The dispatch mechanism relies on globally unique keywords,
the so called event IDs, e.g. :chat/mute-successfully. This means that event
namespaces don't need to require other event namespaces, just like you don't
need to require subscription namespaces in views.

rf/merge increases the likelihood of cyclic dependencies because they force
event namespaces to require each other. Although not as common, this happened a
few times with devs in the team and it can be a big hassle to fix if you are
unlucky. It is a problem we should not have in the first place (at least not as
easily).

### Problem 2: We are not linting thousands of lines of code

The linter (clj-kondo) is incapable of understanding the rf/defn macro. In
theory, we could teach clj-kondo what the macro produces. I tried this, but gave
up after a few tries.

This is a big deal, clj-kondo can catch many issues and will continue to catch
more as it continue to evolve. It's hard to precisely count how many lines are
affected, but `find src/ -type f -name 'events.cljs' -exec wc -l {} +` gives us
more than 4k LOC.

### Problem 3: Blocking RN's UI thread for too long

Re-frame has a routing mechanism to manage events. When an event is dispatched,
it is enqueued and scheduled to run some time later (very soon). This process is
asynchronous and is optimized in such a way as to balance responsiveness vs the
time to empty the queue.

>[...] when processing events, one after the other, do ALL the currently queued
>events. Don't stop. Don't yield to the browser. Hog that CPU.
>
>[...] but if any new events are dispatched during this cycle of processing,
>don't do them immediately. Leave them queued.
>
>-- https://github.com/day8/re-frame/blob/master/src/re_frame/router.cljc#L8-L60

Decisions were made (way back in 2017) to reduce the number of registered
re-frame events and, more importantly, to coalesce events into bigger ones with
the rf/merge pattern. I tried to find evidence of real problems that were trying
to be solved, but my understanding is that decisions were largely based on
personal architectural preferences.

Fast-forward to 2023, and we are in a situation where we have many heavy events
that process a LOT of stuff in one go using rf/merge, thus blocking the UI
thread longer than we should. See, for example,
[status-im2.contexts.profile.login.events/login-existing-profile](3082605d1e/src/status_im2/contexts/profile/login/events.cljs (L69)),
[status-im2.contexts.profile.login.events/get-chats-callback](3082605d1e/src/status_im2/contexts/profile/login/events.cljs (L98)),
and many others.

The following excerpt was generally used to justify the idea that coalescing
events would make the app perform better.

> We will reduce the the amount of subscription re-computations, as for each
> distinct action, :db effect will be produced and swapped into app-db only once
>
> -- https://github.com/status-im/swarms/issues/31#issuecomment-346345981

This is in fact incorrect. Re-frame, ever since 2015 (so before the original
discussions in 2017) uses a concept of batching to process events, which means
subscriptions won't re-run after every dispatched event, and thus components
won't re-render either. Re-frame is smarter than that.

> groups of events queued up will be handled in a batch, one after the other,
> without yielding to the browser (previously re-frame yielded to the browser
> before every single event).
>
> -- 39adca9367/docs/releases/2015.md (050--2015-11-5)

Here's a practical example you can try in a shadow-cljs :mobile REPL to see the
batching behavior in practice.

```clojure
;; A dummy event that toggles between DEBUG and INFO levels.
(re-frame/reg-event-fx :dummy-event
  (fn [{:keys [db]}]
    {:db (update-in db
                    [:profile/profile :log-level]
                    (fn [level]
                      (if (= "DEBUG" level)
                        "INFO"
                        "DEBUG")))}))

(def timer
  (js/setInterval #(re-frame/dispatch [:dummy-event])
                  50))

;; 1. In component status-im.ui.screens.advanced-settings.views/advanced-settings,
;; add a print call to see when it's re-rendered by Reagent because the
;; subscription :log-level/current-log-level will be affected by our dummy event.
;;
;; 2. Also add a print call to the subscription :log-level/current-log-level to
;; see that the subscription does NOT re-run on every dispatch.

;; Remember to eval this expression to cancel the timer.
(js/clearInterval timer)
```

If you run the above timer with 50ms interval, you'll see a fair amount of
batching happening. You can infer that's the case because you'll see way less
than 20 print statements per second (so way less than 20 recomputations of the
subscription, which is the max theoretical limit).

When the interval is reduced even more, to say 10ms (to simulate lots of
dispatches in a row), sometimes you don't see a single recomputation in a 5s
window because re-frame is too busy processing events.

This shows just how critical it is to have event handlers finishing as soon as
possible to relinquish control back to the UI thread, otherwise responsiveness
is affected. It also shows that too many dispatches in a row can be bad, just as
big event handlers would block the batch for too long. You see here that
dispatching events in succession does NOT cause needless re-computations.

Of course there's an overhead of using re-frame.core/dispatch instead of calling
a Clojure function, but the trade-off is clearly documented: the more we
process in a single event, the less responsive the app may be because re-frame
won't be able to relinquish control back to the UI thread. The total time to
process the batch increases, but re-frame can't stop in the middle compared to
when different dispatches are used.

Thus, I believe this rf/merge pattern is harmful as a default practice in an
environment such as ours, where it's desirable end-users feel a snappy RN app. I
actually firmly believe we can improve the app's responsiveness by not
coalescing events by default. We're also preventing status-mobile from taking
the most advantage from future improvements in re-frame's scheduler. I can
totally see us experimenting with other algorithms in the scheduler to best fit
our needs. We should not blindly reduce the number of events as stated here
https://github.com/status-im/status-mobile/pull/2634#discussion_r155243127.

Solution: only coalesce events into one pile when it's strictly desirable to
atomically update the app db to avoid inconsistencies, otherwise, let the
re-frame scheduler do its job by using fx, not rf/merge. When needed, embrace
*eventual app db consistency* as a way to achieve lower UI latency, i.e. write
fast and short events, intentionally use :dispatch-later or other timing effects
to bend the re-frame's scheduler to your will.

There's another argument in favor of using something like rf/merge which I would
like to deconstruct. rf/merge gives us a way to reuse computations from
different events, which is nice. The thing here is that we don't need rf/merge
or re-frame to reuse functions across namespaces. rf/merge complects re-frame
with the need to reuse transformations.

Instead, the solution is as trivial as it gets, reuse app db "transformers"
across events by extracting the logic to data store namespaces
(src/status_im/data_store). This solution has the added benefit of not causing
cyclic dependency errors.

### Problem 4: Clojure's language server doesn't understand code under rf/defn

Nowadays, many (if not most) Clojure devs rely on the Clojure Language Server
https://github.com/clojure-lsp/clojure-lsp to be more effective. It is an
invaluable tool, but it doesn't work well with the macro rf/defn, and it's a
constant source of frustration when working in event namespaces. Renaming
symbols inside the macro don't work, finding references, jumping to local
bindings, etc.

Solution: don't use rf/defn, instead use re-frame's reg-event-fx function and
clojure-lsp will understand all the code inside event handlers.

### Problem 5: Unit tests for events need to "test the world"

Re-frame's author strongly recommends testing events that contain non-trivial
data transformations, and we do have many in status-mobile (note: let's not
confuse with integration tests in status_im/integration_test.cljs). That, and
non-trivial layer-3 subscriptions should be covered too. The reasoning is that
if we have a well developed and tested state layer, many UI bugs can be
prevented as the software evolves, since the UI is partially or greatly derived
from the global state. See re-frame: What to Test?
39adca9367/docs/Testing.md (what-to-test).
See PR Introduce subscription tests
https://github.com/status-im/status-mobile/pull/14472, where I share more
details about re-frame's testing practices.

When we use rf/merge, we make unit testing events a perennial source of
frustration because too many responsibilities are aggregated in a single event.
Unfortunately, we don't have many devs in the team that attempted to write unit
tests for events to confirm my claim, but no worries, let's dive into a real
example.

In a unit test for an event, we want to test that, given a cofx and args, the
event handler returns the expected map of effects with the correct values
(usually db transformations).

Let's assume we need to test the following event. The code is still using the
combo rf/defn & rf/merge.

```clojure
(rf/defn accept-notification-success
  {:events [:activity-center.notifications/accept-success]}
  [{:keys [db] :as cofx} notification-id {:keys [chats]}]
  (when-let [notification (get-notification db notification-id)]
    (rf/merge cofx
              (chat.events/ensure-chats (map data-store.chats/<-rpc chats))
              (notifications-reconcile [(assoc notification :read true :accepted true)]))))
```

As you can see, we're "rf/merging" two other functions, namely ensure-chats and
notifications-reconcile. In fact, ensure-chats is not registered in re-frame,
but it's 99% defined as if it's one because it needs to be "mergeable" according
to the rules of rf/merge. Both of these "events" are quite complicated under the
hood and should be unit tested on their own.

Now here goes the unit test. Don't worry about the details, except for the expected output.

```clojure
(deftest accept-notification-success-test
  (testing "marks notification as accepted and read, then reconciles"
    (let [notif-1          {:id "0x1" :type types/private-group-chat}
          notif-2          {:id "0x2" :type types/private-group-chat}
          notif-2-accepted (assoc notif-2 :accepted true :read true)
          cofx             {:db {:activity-center {:filter        {:type types/no-type :status :all}
                                                   :notifications [notif-2 notif-1]}}}

          expected {:db         {:activity-center {:filter        {:type 0 :status :all}
                                                   :notifications [notif-2-accepted notif-1]}
                                 :chats           {}
                                 :chats-home-list nil}
                    ;; *** HERE ***
                    :dispatch-n [[:activity-center.notifications/fetch-unread-count]
                                 [:activity-center.notifications/fetch-pending-contact-requests]]}
          actual   (events/accept-notification-success cofx (:id notif-2) nil)]
      (is (= expected actual)))))
```

Notice the map has a :dispatch-n effect and other stuff inside of it that are
not the responsibility of the event under test to care about. This happens
because rf/merge forces the event handler to compute/call everything in one go.
And things get MUCH worse when you want to test an event A that uses rf/merge,
but A calls other events B and C that also use rf/merge (e.g. event
:profile.login/get-chats-callback). At that point you flip the table in horror
😱, but testing events and maintaining them should be trivial.

Solution: Use re-frame's `fx` effect.

Here's the improved implementation and its accompanying test.

```clojure
(defn accept-notification-success
  [{:keys [db]} [notification-id {:keys [chats]}]]
  (when-let [notification (get-notification db notification-id)]
    (let [new-notifications [(assoc notification :read true :accepted true)]]
      {:fx [[:dispatch [:chat/ensure-chats (map data-store.chats/<-rpc chats)]]
            [:dispatch [:activity-center.notifications/reconcile new-notifications]]]})))

(re-frame/reg-event-fx :activity-center.notifications/accept-success accept-notification-success)

(deftest accept-notification-success-test
  (testing "marks notification as accepted and read, then reconciles"
    (let [notif-1          {:id "0x1" :type types/private-group-chat}
          notif-2          {:id "0x2" :type types/private-group-chat}
          notif-2-accepted (assoc notif-2 :accepted true :read true)
          cofx             {:db {:activity-center {:filter        {:type types/no-type :status :all}
                                                   :notifications [notif-2 notif-1]}}}

          ;; *** HERE ***
          expected {:fx [[:dispatch [:chat/ensure-chats []]]
                         [:dispatch [:activity-center.notifications/reconcile [notif-2-accepted]]]]}
          actual   (events/accept-notification-success cofx [(:id notif-2) nil])]
      (is (= expected actual)))))
```

Notice how the test expectation is NOT verifying what other events do (it's
actually "impossible" now). Using fx completely decouples events and makes
testing them a joy again.

### Problem 6: Unordered effects

status-mobile still uses the legacy way to describe the effects map, which has
the problem that their order is unpredictable.

> Prior to v1.1.0, the answer is: no guarantees were provided about ordering.
> Actual order is an implementation detail upon which you should not rely.
>
> -- 39adca9367/docs/Effects.md (order-of-effects)

> In fact, with v1.1.0 best practice changed to event handlers should only
> return two effects :db and :fx, in which case :db was always done first and
> then :fx, and within :fx the ordering is sequential. This new approach is more
> about making it easier to compose event handlers from many smaller functions,
> but more specificity around ordering was a consequence.
>
> -- 39adca9367/docs/Effects.md (order-of-effects)

### Problem 7: Usage of deprecated effect dispatch-n

We have 35 usages, the majority in new code using dispatch-n, which has been
officially deprecated in favor of multiple dispatch tuples in fx. See
39adca9367/docs/api-builtin-effects.md (L114)

### Problem 8: Complexity 🧙‍♂️

Have you ever tried to understand and/or explain how rf/merge and rf/defn work?
They have their fare share of complexity and have tripped up many contributors.

This is not ideal if we want to create a project where contributors can learn
re-frame as quickly as possible. Re-frame is already complicated enough to grasp
for many, the added abstractions should be valuable enough to justify.

Interestingly, rf/merge is a stateful function, and although this is not a
problem in practice, it is partially violating re-frame's spirit of only using
pure functions inside event handlers.

### Problem 9: Using a wrapping macro rf/defn instead of global interceptors

When rf/defn was created inside status-mobile, re-frame didn't have global
interceptors yet (which were introduced 3+ years ago). We no longer have this
limitation after we upgraded our old re-frame version in PR
https://github.com/status-im/status-mobile/pull/15997.

Global interceptors are a simple and functional abstraction to specify functions
that should run on every event, for example, for debugging during development,
logging, etc. This PR already shows this is possible by removing the wrapping
function utils.re-frame/register-handler-fx without causing any breakage.

## Conclusion

By embracing re-frame's best practices for describing effects
39adca9367/docs/FAQs/BestPractice.md (use-the-fx-effect),
we can solve long standing issues that affect every contributor at different
levels and bring the following benefits:

- Simplify the codebase.
- Bring back the DX we all deserve, i.e. Clojure Language Server and clj-kondo
  fully working in event namespaces.
- Greatly facilitate the testability of events.
- Give devs more flexibility to make the app more responsive, because the new
  default would not coalesce events, which in turn, would block the UI thread
  for shorter periods of time. At least that's the theory, but exceptions will
  be found.

The actions to achieve those benefits are:

- Don't use the macro approach, replace rf/defn with
  re-frame.core/reg-event-fx.
- Don't use rf/merge, simply use re-frame's built-in effect :fx.
- Don't call event handlers as normal functions, just as we don't directly call
  subscription handlers. Use re-frame's built-in effect :fx.

## How do we refactor the remainder of the code?

Some numbers first:

- There are 228 events defined with rf/defn in src/status-im2/.
- There are 34 usages of rf/merge in src/status_im2/.

## Resources

- Release notes where fx was introduced in re-frame:
  39adca9367/docs/releases/2020.md (110-2020-08-24)
2023-10-05 16:11:45 -03:00
Icaro Motta b73ac6b107
Upgrade clj-kondo and configure new linters (#17543)
- Upgrade clj-kondo to latest version to take advantage of new linters. From
  version 2023.04.14
  https://github.com/clj-kondo/clj-kondo/blob/master/CHANGELOG.md#20230414 to
  2023.09.07
  https://github.com/clj-kondo/clj-kondo/blob/master/CHANGELOG.md#20230907
- Use new linter ":unused-alias" and set at WARN level for the moment, because
  otherwise the PR would increase a bit too much, but it did catch many unused
  "require" aliases. Added in version 2023.09.07
  https://github.com/clj-kondo/clj-kondo/blob/master/CHANGELOG.md#20230907
- Use new linter ":case-symbol-test" and fix the reported errors, added in
  version 2023.07.13
  https://github.com/clj-kondo/clj-kondo/blob/master/CHANGELOG.md#20230713
- Use new linters ":equals-true", ":plus-one", and ":minus-one" and fix reported
  errors, added in version 2023.05.18
  https://github.com/clj-kondo/clj-kondo/blob/master/CHANGELOG.md#20230518
- Raise level from WARN to ERROR for linter "uninitialized-var".
- Explicitly add ":case-duplicate-test" to clj-kondo config, renamed in version
  2023.07.13
  https://github.com/clj-kondo/clj-kondo/blob/master/CHANGELOG.md#20230713
- Explicitly add ":case-quoted-test" to clj-kondo config, renamed in version
  2023.07.13
  https://github.com/clj-kondo/clj-kondo/blob/master/CHANGELOG.md#20230713
- Explicitly add ":deprecated-namespace" to clj-kondo config, added in version
  2023.07.13
  https://github.com/clj-kondo/clj-kondo/blob/master/CHANGELOG.md#20230713

Fixes https://github.com/status-im/status-mobile/issues/17287
2023-10-05 15:50:57 -03:00
Anton Iakimov d80fb0b3de
update status/wakuv2 fleets DNS discovery enrtree
e1354016...9034f0a9

https://github.com/status-im/infra-misc/issues/171
2023-10-05 18:22:42 +01:00
Andrea Maria Piana ef80fc567f
Update waku nodes
e1354016...b8041fc8
2023-10-05 18:22:10 +01:00
Siddarth Kumar 7043e03dd4
Enter scan code tab in Syncing (#16852)
* feat: add enter scan code view

This commit adds the enter sync code UI.

Fixes : #16062

Design link : https://www.figma.com/file/V6nlpAWIf2e1XU8RJ9yQPe/Syncing-for-Mobile?node-id=675%3A179729&mode=dev

Review notes :
We do not make use of quo2/input here because currently that component does not allow stretching to fit in sync code which spans upto 3 lines.
2023-10-05 21:05:54 +05:30
Parvesh Monu c2833ae33d
fix wrong counter color in jump-to screen (#17554) 2023-10-05 18:46:25 +05:30
Ibrahem Khalil a7f0566050
Copy update (#17487) 2023-10-05 14:04:08 +03:00
Omar Basem 1812cfb8dc
fixes (#17519)
Fix onboarding UI
2023-10-05 08:26:44 +04:00
John Ngei d5a71e2ce0
updated selected item view
* updated selected-item view to match design

* fix show bottom margin on selected item on bottom sheet

* fixed image message dimensions

* fix: selected item view issues

* fix: reviews

* fix: bottom sheet shaking when item is selected
2023-10-05 01:42:53 +03:00
Omar Basem 191f5de6f1
Wallet: Create Account UI (2) (#17468)
* Wallet: create account UI (2)
2023-10-04 14:17:55 +04:00
Omar Basem df2b5147cd
Wallet: Add address to watch (#17479)
wallet: add address to watch
2023-10-04 14:04:33 +04:00
Parvesh Monu 4235c71b2f
Remove options to create community from mobile from release and nightly builds (#17495) 2023-10-04 15:12:16 +05:30
Mohamed Javid aef2f2cfed
Implement wallet-networks type to the page-nav component (#17485)
This commit adds the wallet-networks type to the page-nav component.

Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2023-10-04 14:18:34 +05:30
BalogunofAfrica f065aa1c05
fix(identifier): emoji hash line height (#17386) 2023-10-04 08:44:44 +01:00
Brian Sztamfater 878a1cc285
feat: implement saved contact address list item component (#17400)
Signed-off-by: Brian Sztamfater <brian@status.im>
2023-10-03 15:51:11 -03:00
Ibrahem Khalil 26a702799c
[16845] Wrong buttons background color on community home screen's page nav (#17003) 2023-10-03 19:37:11 +03:00
Ibrahem Khalil f5038f8e24
Only count images in an album in photo selector (#17459) 2023-10-03 19:00:51 +03:00
Lungu Cristian dfc972079f
fix: show hashtag in chat when replying/copying (#17374) 2023-10-03 11:55:22 +03:00
Lungu Cristian 1286188005
fix: show links inside activity-center mention (#17424) 2023-10-03 11:17:32 +03:00
Volodymyr Kozieiev 9fb37d3a48
Collection avatar component (#17462)
* Collection avatar component
2023-10-02 21:46:47 +01:00
Mohsen ee85d6d596
[#17288] refactor: migrate previews to new api (#17470) 2023-10-02 16:28:35 +03:00
Omar Basem d8d8a6c7a0
Quo2: Token Input followup (#17419)
* Quo2: token input followup
2023-10-02 09:01:39 +04:00
Mohamed Javid 9c26a54006
Add network-dropdown to wallet-overview component (#17440)
This commit adds the "network-dropdown" component to the "wallet-overview" component.

Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2023-09-29 18:53:06 +05:30
codemaster ab868a6ae5
Implement switcher group messaging card (#16802) 2023-09-29 23:11:21 +10:00
Parvesh Monu 695bbcbe81
fix bottom tabs unread badge for group chats (#17454) 2023-09-29 17:59:35 +05:30
Mohamed Javid bf76ca167a
Implement dropdown component and update it's usage across the codebase (#17412)
This commit: 

- Removes the existing dropdown component which uses the old button component under the hood
- Implements the Dropdown component
- Updates the usage in the page-nav component for types dropdown, token and wallet-networks
- Updates the usage in the photo selector bottom sheet
- Updates the usage in the Quo2 preview main screen

---------

Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2023-09-29 17:37:27 +05:30
Ulises Manuel af1942dff3
[#17220] - New 64 avatars size (#17283)
* Add 64 size for user-avatar

* Add 64 size for channel-avatar

* Add 64 size for account-avatar

* Add 64 size for wallet-avatar
2023-09-29 03:48:02 -06:00
yqrashawn 1c31127a6f
fix: missing/empty user-avatar in component previews (#17430) 2023-09-29 15:30:04 +08:00
Ajay Sivan fe404ab005
Remove old quo code from status_im2 namespace (#17404) 2023-09-28 09:27:31 -07:00
Brian Sztamfater 8869271054
feat: implement account list item component (#17303)
Signed-off-by: Brian Sztamfater <brian@status.im>
2023-09-28 12:27:36 -03:00
Brian Sztamfater 5ea78084d1
feat: implement saved address component (#17398)
Signed-off-by: Brian Sztamfater <brian@status.im>
2023-09-28 12:13:49 -03:00
Mohsen ba57ab9ae4
[#17288] refactor: migrate previews to new api (#17420) 2023-09-28 15:26:15 +03:00
Siddarth Kumar 0522120c66
Standardized in-app authentication (#16916)
* chore: move password input to connected component
---------

Co-authored-by: Jamie Caprani <jamiecaprani@gmail.com>
Co-authored-by: frank <lovefree103@gmail.com>
2023-09-28 04:23:15 -07:00
Parvesh Monu 6b9b5fa300
Only use animated loading skeleton for ios (#17432) 2023-09-27 20:43:21 +05:30
Omar Basem 77733b3a65
Quo2: Color picker (#17405)
* Quo2: color picker
2023-09-27 15:34:16 +04:00
Volodymyr Kozieiev 79f7b6c6ba
Transaction summary design followup fixes (#17360) 2023-09-27 11:54:41 +01:00
flexsurfer db787f9d4b
remove status-im.utils.clocks (#17434) 2023-09-27 12:04:40 +02:00
flexsurfer a847f508f9
[#17410] migrate status-im.ethereum.core (#17422) 2023-09-27 11:57:51 +02:00
Lungu Cristian 4152b9318b
Quo2: section label (#17219)
* feat: added section-label to quo2

* fix: addressed review comments

* ref: reorder and small change

* fix: blur only for dark and adjusted styling
2023-09-27 12:07:10 +03:00
codemaster 96f476fc2b
feat: Implement quo2 code-snippet-preview component (#17235) 2023-09-27 07:41:52 +10:00
Parvesh Monu 90cb5d3d88
fix group card remains in shell after leaving the group (#17417) 2023-09-26 20:33:56 +05:30
Ibrahem Khalil da5086aae2
[17377-17378] Fix reply view in activity center showing only one phot… (#17388) 2023-09-26 15:59:36 +03:00
Flavio Fraschetti f12c7401d1
WIP: refactor notifications (#17413)
to accomplish #17288

migrated :

notifications

Issue Opened: A bug has been identified within the activity-logs component and is currently under investigation.
2023-09-25 19:04:03 +01:00
mmilad75 3082605d1e
Handle account-card component pressed state bg color (#17234)
Handle account-card component pressed state bg color
2023-09-25 16:30:54 +03:30
Mohsen Ghafouri 1dfab2b416
[#17333] fix: disable ring for small avatar (#17385) 2023-09-25 15:47:38 +03:00
Mohamed Javid a9b63e0f22
Update "Preview List" component to use "Number Tag" for overflow item (#17257)
This commit updates

- the preview-list component to use "number-tag" for overflow items in the list as a follow-up of the PR Update "Preview list" component.

- the usage of the preview-list component in the context-tag (multiuser and multinetwork type) is updated as it was broken.

- the size APIs of preview-list and number-tag and their usage across the codebase to respect the new guidelines.

---------

Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2023-09-25 17:28:20 +05:30
Jamie Caprani f47a4a18e8
chore: add docs with size (#17279)
* chore: update guidelines for sizes

* chore: update to size uses in codebase to follow new convention

---------

Co-authored-by: Ulises M <ulises.ssb@hotmail.com>
2023-09-25 05:22:07 -06:00
flexsurfer 723573833e
[#17357] move status-im.async-storage.core (#17380) 2023-09-25 12:45:39 +02:00
Mohsen Ghafouri 6fd5a97b59
[#17288] refactor: migrate previews to new api (#17366) 2023-09-25 13:19:50 +03:00
Mohsen Ghafouri 848cac31ba
[#17300] fix: syncing device indicator color and some alignment (#17340) 2023-09-25 11:55:54 +03:00
flexsurfer b2cae88924
[#17383] migrate status-im.utils.types (#17389) 2023-09-25 09:32:55 +02:00
Omar Basem 1aadffd300
Quo2: keypair blur (#17294)
* quo2: keypair blur
2023-09-25 08:32:04 +04:00
frank 7543dc9001
fix: identifier rings are displayed on avatars for users with a set ENS (#17346) 2023-09-22 21:51:54 +08:00
Parvesh Monu a99ae74da7
remove messages screen global states (#17365) 2023-09-21 21:21:42 +05:30
Parvesh Monu db41eb303d
fix unread badges behavior on Jump-to screen (#17363) 2023-09-21 17:53:38 +05:30
Jamie Caprani e41fb03b6f
adjust colors resolver to handle communities color (#17339) 2023-09-21 01:03:02 +02:00
Jamie Caprani 0ae1e9bc5a
chore: updating theming in quo2 components and chat (#17199) 2023-09-21 00:41:00 +02:00
flexsurfer ddd0796381
[#17355] status-im.utils.image-processing (#17356) 2023-09-20 16:14:53 +02:00
flexsurfer 92cc49184d
move messages legacy view (#17354) 2023-09-20 15:42:57 +02:00
Mohsen Ghafouri 41282a9f5d
[#17309] fix: wrong cursor position in a pre-filled composer (#17329) 2023-09-20 16:24:03 +03:00
flexsurfer 5bb954f8a7
[#17351] remove status-im.utils.platform (#17352) 2023-09-20 14:17:52 +02:00
flexsurfer 6a169bd0bd
[#17347] move [status-im.utils.http :as http] to status-im2 (#17350) 2023-09-20 14:16:07 +02:00
Jamie Caprani 6279264ff1
chore: remove colors/dark? method from colors file and update uses (#17202) 2023-09-19 08:16:18 -07:00
frank cb9ae21cf2
process backedup(profile/settings) signal (#17306) 2023-09-19 22:05:59 +08:00
Jamie Caprani 6eb53ca2db
fix: update use of setting-item component to match new api (#17244) 2023-09-19 05:05:07 -07:00
frank d5af6b62a7
fix: display name not displayed after sync (#17311) 2023-09-19 17:18:38 +08:00
BalogunofAfrica f2366219a3
fix: carousel text overflow (#17293) 2023-09-19 09:15:50 +01:00
BalogunofAfrica 95e0715163
fix: intro screen carousel (#17269)
* fix: last slide showing for a split second

* fix: use scale resize-method to load image faster on android
2023-09-19 08:51:55 +01:00
Brian Sztamfater 9479f02b39
feat: wallet select address screen UI in empty state (#17248)
Signed-off-by: Brian Sztamfater <brian@status.im>
2023-09-18 16:17:11 -03:00
Parvesh Monu 9df1b854bd
Remove use of camel-snake-kebab from shell worklet (#17310) 2023-09-18 16:51:39 +05:30
frank 442600bc28
use new API for ens name registration (#17127)
* use new API for ens name registration

4cc53630...223d215e

* update status-go-version.json

* update status-go-version.json

* fix Error:Field validation for 'KeycardPairingDataFile' failed on the 'required' tag

* update status-go-version.json

* fix lint issue
2023-09-16 11:37:06 +08:00
Mohsen Ghafouri b73ea572ee
[#17288] refactor: migrate previews (markdown, messages) to new api (#17280) 2023-09-15 19:53:30 +03:00
Siddarth Kumar a24ddbeefa
address design feedback on profile share UI (#16257)
This commit adds UI Touchups to profile share screen according to a recent Design Review.
2023-09-15 18:02:13 +05:30
Mohsen Ghafouri a53ba0c4e1
[#17218] fix: android channel name ellipsize completely (#17262) 2023-09-15 14:52:26 +03:00
Volodymyr Kozieiev 4006495b22
fix keyword renaming performance (#17291) 2023-09-15 12:02:44 +01:00
Omar Basem 4d9ebdb9f9
Quo2: Account list card blur (#17271)
* Quo2: account list card blur
2023-09-15 07:43:48 +04:00
Icaro Motta e2f837fcbc
Raise clj-kondo linter levels (#17289)
Recently, we changed clj-kondo default fail-level from "warning" to "error", but
we missed the fact that we needed to raise the default level for all linters set
to "warning".
2023-09-14 11:28:43 -03:00
flexsurfer 07d1b13520
temporary remove "curated.communities.update" (#17286) 2023-09-14 15:57:29 +02:00
Lungu Cristian 5d4fbe7ef1
fix: quo2 reaction styles (size + colors) (#17224) 2023-09-14 12:21:11 +03:00
Mohamed Javid 0003800f05
Implement Emoji Picker (#17195)
This commit adds Emoji Picker in the app for usage in Message Composer and Wallet Account.

---------

Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2023-09-13 23:08:13 +05:30
Icaro Motta dab4d953ec
Fix incorrect usage of functional component (#17281)
Every keypress on an input field of the preview descriptor re-rendered the whole
functional component and the input focus was lost.

As we know from past issues, we should never use this pattern:

    (defn component
      []
      [:f>
       (fn []
         ...)])
2023-09-13 13:22:53 -03:00
Brian Sztamfater baa9dff237
feat: implement address input (#17191)
Signed-off-by: Brian Sztamfater <brian@status.im>
2023-09-13 10:26:29 -03:00
Omar Basem 344c9ba9b7
Quo2: Settings item blur (#17258)
* quo2: settings item blur
2023-09-12 21:49:10 +04:00
Icaro Motta 6ea31695d6
Do not warn about subscriptions being used in non-reactive contexts (#17240)
Force re-frame to stop warning about subscriptions in non-reactive contexts
while executing subscription tests (i.e. unit tests using the macro
test-helpers.unit/deftest-sub).

The net result? No more hundreds of useless warnings in the output of make test.

    re-frame: Subscribe was called outside of a reactive context.
     See: https://day8.github.io/re-frame/FAQs/UseASubscriptionInAJsEvent/

The warning is actually useful in production code, but in a subscription test we
already know we're never inside a reactive context.
2023-09-12 11:58:06 -03:00
Volodymyr Kozieiev dd1f938e85
Transaction summary component (#17163)
* Transaction summary component
2023-09-12 14:44:40 +01:00
mmilad75 fcbe6fe2b4
Implement "Drawer top" component (#17196)
Implement "Drawer top" component
2023-09-12 12:03:15 +03:30
Mustafa Ateş Uzun 599cf0fb24
fix: web-prefixes function (#17239) 2023-09-11 12:37:24 +02:00
Flavio Fraschetti 0842a97cac
Fix: composer is separated from the footer #17238
This PR resolves the issue where Composer becomes detached from the footer during the chat history loading phase, specifically when the skeleton screen is displayed. Fixes #17237.
2023-09-11 11:12:46 +01:00
Ajay Sivan 7bb4f9cfe8
Title input component improvements (#17209)
- Add edit icon
- Fix disable style
2023-09-08 04:59:51 -07:00
yqrashawn 50a1e10136
fix: icon size in system message add new :size/s-24 icon-avatar (#17108) 2023-09-08 19:23:32 +08:00
yqrashawn a05156c645
Fix: User-avatar indicator size/position (#17110)
### Commit Summary
Figma https://www.figma.com/file/WQZcp6S0EnzxdTL4taoKDv/Design-System-for-Mobile?type=design&node-id=107-5264&mode=design&t=3IlYad4D0crAiVcf-4

Affected all avatars with status indicator
32x32

Signed-off-by: yqrashawn <namy.19@gmail.com>
Co-authored-by: Flavio Fraschetti <flavio@status.im>
2023-09-07 17:45:23 +01:00
Mohsen Ghafouri cd1bd1c211
[#17207] fix: incorrect mentions alignment in messages (#17212) 2023-09-07 19:25:03 +03:00
Andrea Maria Piana 50af7fb502
Hide featured communities when not fetched 2023-09-07 17:10:38 +01:00
Flavio Fraschetti a30a80f8a1
Replace old skeleton with new (#17169)
fixes #17103

### Follow up from #16865

This commit focuses on enhancing the user experience by replacing our legacy skeleton loaders with the latest version. Additionally, it introduces a refined approach for deprecating outdated components and functions to maintain a cleaner codebase.

### Key Changes

Replace existing skeleton loaders with the latest skeleton-list component for improved performance and usability.
Implement a standardized deprecation method, using either naming conventions or metadata annotations, for phasing out old components and functions.
2023-09-07 16:31:11 +01:00
Jamie Caprani 8036c219e8
chore: add transparent outline to notification in top-nav component (#17171) 2023-09-07 07:10:38 -07:00
flexsurfer a8e9b2486b
Community logo and title are not aligned on the channels screen #17214 (#17215) 2023-09-07 15:29:35 +02:00
Omar Basem 36c87d3857
Quo2 Wallet: Settings Item (#17179)
* feat quo2: settings-item
2023-09-07 15:36:28 +04:00
Alexander c1c8c210e8
Top bar stability & animation improvements (#17170)
* Top bar stability improvements

Style updates

Style updates, bugfixes

* Display name update

* Style fix
2023-09-07 13:13:16 +02:00
Ajay Sivan b645686684
fix: profile input - input field position - Android (#17210) 2023-09-07 03:53:40 -07:00
Omar Basem bd8e332c68
Quo2: divider line (#17211)
* quo2: divider line
2023-09-07 13:50:19 +04:00
Omar Basem 2f13dfe22a
New nav bar for preview screens (#17206)
* quo2: preview themes
2023-09-07 11:16:26 +04:00
Ajay Sivan e9d76c2a0b
Handle long names in pinned messages (#17078)
Handle long names in all system messages variations
2023-09-06 08:17:31 -07:00
Samuel Hawksby-Robinson d63b1240d7
Fix for Android error `route ip+net: netlinkrib: permission denied` (#17166)
* status-go branch update

4cc53630...b9968a75

* comment start-searching-for-local-pairing-peers out

* revert status-go-version.json

---------

Co-authored-by: frank <lovefree103@gmail.com>
2023-09-06 15:24:40 +08:00
Brian Sztamfater b2840a77a5
feat: add custom color to wallet graph (#17149)
Signed-off-by: Brian Sztamfater <brian@status.im>
2023-09-05 11:05:54 -03:00
John Ngei 7d1098b5b3
Fix join communities design review bugs
* fix: join communities design review bugs

* updated design fixes
2023-09-05 15:53:59 +03:00
Mohsen Ghafouri 741e40094b
[#16859] fix: community channel design review (#17178) 2023-09-05 14:40:05 +03:00
flexsurfer a1babada69
Onboarding screens (#17165)
* Broken back navigation on "Create profile" screen #17155
Onboarding screens layout is broken
#17152
Onboarding Flow - Layout issues in enable biometrics screen
#17151
Onboarding navigation issues
#17129
2023-09-05 13:19:15 +02:00
Ajay Sivan dfa30fd14f
quo channel component refactor (#17070) 2023-09-04 08:39:23 -07:00
mmilad75 6809311191
Implement "Account origin" Component (#17147)
Implement "Account origin" Component
2023-09-01 20:41:57 +03:30
Volodymyr Kozieiev f3f85f9911
Wallet activity component (#17141)
* Wallet activity component

* Component description added

* removed unnecessary piece

* lint fix

* Review notes

* fix issue with blur preview

* lint fix
2023-09-01 16:20:15 +01:00
Parvesh Monu 77fc7a92d9
Don't display "Add Unknown as contact to send a Message" if chat is not loaded 2023-09-01 18:04:54 +05:30
Jamie Caprani 72455877bd
fix: remove hole view code with error (#17164) 2023-09-01 05:11:13 -07:00
Icaro Motta 857c9c2f74
Unshadow remaining core & non-core vars (#17138)
Unshadows all remaining vars in status-mobile, including non
cljs.core/clojure.core ones. The only exceptions are cljs.core/type and
cljs.core/name (which happen quite often, so I'm not sure if it's worth
unshadowing them).
2023-09-01 11:54:53 +00:00
Icaro Motta 1ac7c2f965
Fix: missing community logo in Activity Center (#17159)
The bug was caused, again, by the fact that the component react-native/image
source was a string and it was not wrapped inside the map {:uri "..."}. The
bug was likely introduced by commit 255a3b9172

I decided to change react-native.image for good, similarly to what we do in
react-native/fast-image
(ebd38295c6/src/react_native/fast_image.cljs (L21))
so we can prevent this type of bug in the future.

Fixes https://github.com/status-im/status-mobile/issues/17157
2023-09-01 11:31:19 +00:00
BalogunofAfrica d35dbff044
fix: use custom color for send button (#17146) 2023-09-01 10:47:21 +01:00
yqrashawn 7e9ba0768a
fix: support new design ident ring width (#17034) 2023-09-01 16:35:46 +08:00
Jamie Caprani d462810a57
chore: move top nav to quo2 and align with figma (#17043) 2023-08-31 14:11:46 -07:00
Brian Sztamfater 1c730bc692
feat: implement interactive graphs (#17029)
Signed-off-by: Brian Sztamfater <brian@status.im>
2023-08-31 13:45:54 -03:00
Mohsen Ghafouri 62030497e5
[#17140] fix: AC tabs are flickering while scrolling them (#17145) 2023-08-31 16:46:53 +03:00
Siddarth Kumar 2e63ee8baf
feat: add tags - network tags component to quo2
Co-authored-by: andresceballosm <ceballosmarandres@gmail.com>
2023-08-31 02:55:17 -07:00
Ibrahem Khalil a218499f2a
[16728] Allow message editing to save link previews (#17117) 2023-08-31 10:59:49 +03:00
Andrea Maria Piana 70d8a90152
Show collapsed header in communities
Fixes: #16123

This commit changes the behavior when joining communities:

1) If the user hasn't joined a community, they will see the
   non-collapsed header.
2) If the user has already joined the community, they will see a
   collapsed version of the header, in order to have quicker access to
   the chats of the community without having to scroll a lot.

One edge case that is taken care of is the following:
1) User visits a community that has not joined, requests to join.
2) The user is on the community page when the state changes from
   not-joined -> joined.

In this case the user won't see the collapsed header until they leave
the community view (go back to home say and back to communities).

This is done in order to avoid some janky transition between the non
collapsed & collapsed version of the header.

This is slightly different from as mentioned in the issue "visiting the
page for the 2nd time", as that will require larger changes but it
should be an acceptable behavior, since most of the times they will have
to visit the overview to request access.
2023-08-30 21:06:13 +01:00
erikseppanen 8c02291c0b
Add number tag component (#17134) 2023-08-30 13:29:59 -04:00
Andrea Maria Piana a00eb6292f
Remove 3 words alias
347d875a...bf748de2
2023-08-30 16:48:43 +01:00
Ibrahem Khalil 9ab1b70e0e
Pinned messages drawer comments (#16998) 2023-08-30 16:04:08 +03:00
Ibrahem Khalil 3162e2dd3e
Design notes for pinned message (#16997) 2023-08-30 15:46:23 +03:00
Mohsen Ghafouri bd36699d09
[#16550] fix: device type indicators in syncing screen (#17133) 2023-08-30 12:20:21 +03:00
Parvesh Monu 5dc874a4cd
fix Chat input overlaps the last message on IPhone 14 (#17113) 2023-08-30 14:35:14 +05:30
Andrea Maria Piana ca7a519f89
Fix contract call for communities 2023-08-30 09:29:03 +01:00
Omar Basem a4717ae5d0
Feat: wallet create account screen UI (#17118)
* feat: wallet create account
2023-08-29 21:06:36 +04:00
BalogunofAfrica a47998a7a0
fix: resolve activity centre design feedback (#17105) 2023-08-29 16:55:11 +01:00
Flavio Fraschetti 141bf5a333
FF/animate-loading-skeleton (#16865)
New Animated skeleton loader
2023-08-29 15:15:32 +01:00
Mohsen Ghafouri 231272603d
[#16861] fix: resolve discover communities design feedbacks (#17128) 2023-08-28 18:09:42 +03:00
Ulises Manuel 255a3b9172
Add missing context tags variants & fix API (#16962)
Add icon-name to group avatar

Add missing context-tags variants and fix the API to match figma

Updates context-tag previous uses

Update use of group-avatar api
2023-08-28 04:37:43 -07:00
Ulises Manuel 6156bfc472
[#16963] Refactor page nav and fix its API (#17031)
* Refactor page-nav and fix API

* Update and fix page-nav in scroll-page component

* Update page-nav uses in quo-preview

* Update page-nav uses in syncing

* Update page-nav uses in communities

* Update page-nav uses in wallet

* Update page-nav uses in onboarding
2023-08-28 02:44:53 -07:00
mmilad75 6870000490
Implement Data Item component (#16960)
Implement Data Item component #16960
2023-08-26 18:33:10 +03:30
Omar Basem 0ef7dc34e4
fix: composer cursor hidden (#17099)
* fix: iOS cursor in chat
2023-08-25 21:33:40 +04:00
Mohamed Javid 0f7e98cbe2
Update "Preview list" component (#17051)
This commit updates the "Preview list" component to support the following types (according to Figma):
- collectibles
- dapps
- accounts
- network
- tokens

Additionally, imports the images for wallet networks and dApps.
---------

Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2023-08-25 21:41:03 +05:30
Mohamed Javid f4d6f64a66
[Feature] Implement "Showcase nav" component (#17100)
This commit implements the "Showcase nav" component which is needed for emoji picker development.

Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2023-08-25 21:16:26 +05:30
Mohsen Ghafouri 2358eb195b
[#16846] fix: resolve communities home design feedbacks (#17089)
* [#16846] fix: resolve communities home design feedbacks

* [#16846] fix: ios card shadow cutoff, re #17098
2023-08-25 17:26:53 +03:00
Parvesh Monu 89d1bd3f6a
fix Jump to button not responding in chat after app returns from background (#17085) 2023-08-25 15:11:18 +05:30
Ajay Sivan 5148a3c748
Quo divider-label component refactor (#17035) 2023-08-24 12:29:26 -07:00
flexsurfer 8701f3545d
[#16864] Design review: messages home (#17050)
---------

Co-authored-by: Yevheniia Berdnyk <ie.berdnyk@gmail.com>
Co-authored-by: Churikova Tetiana <tatiana@status.im>
2023-08-24 14:30:47 +02:00
Mohsen Ghafouri 26eeb43569
[#16846] fix: resolve glow issue in communities home (#17097) 2023-08-24 15:05:31 +03:00
Icaro Motta 17df7a0d35
DRY up preview screens (#17095)
Migrate 47 out of ~90 preview screens to use the new capabilities found in quo-preview.preview.
2023-08-23 20:56:34 +00:00
erikseppanen 0552713143
Add quo2 dApp component (#17074) 2023-08-23 16:31:28 -04:00
Omar Basem 3223c71526
Feat: wallet empty account UI (#17077)
* feat: wallet account empty
2023-08-23 21:10:46 +04:00
Omar Basem 914604bbe4
UI Fix: wallet graph gradient (#17093)
* fix: wallet graph gradient
2023-08-23 20:19:19 +04:00
Volodymyr Kozieiev 821e39a562
Network dropdown component (#16982) 2023-08-23 14:12:15 +01:00
Ibrahem Khalil 4cef868eab
[16866] Action Drawer design review (#17033) 2023-08-23 15:58:23 +03:00
Omar Basem e0f83384a2
Quo2 Wallet: Network Link (#17049)
* Quo2 Wallet: Network Link component
2023-08-23 12:53:45 +04:00
flexsurfer 8fe7fad540
Audio button does not disappear when changed to 'Send' button #17082 (#17083) 2023-08-22 20:39:44 +02:00
codemaster 27f11fcb2d
fix: group-avatar component usage (#17041) 2023-08-22 23:46:10 +10:00
Ibrahem Khalil 8e7c6fe778
Make undread-indicator as last child of view (#17064) 2023-08-22 14:20:52 +03:00
Andrea Maria Piana 79daa4d529
[Fixes: #17027] Fix spacing between own messages 2023-08-22 09:43:34 +01:00
erikseppanen bdedccdda6
wallet overview: design review fixes (#17046) 2023-08-21 19:38:04 -04:00
Parvesh Monu cace2a32a0
Improve the floating shell button and fix its position in the screens (#16981) 2023-08-21 21:30:32 +05:30
Omar Basem 4c9ccf3069
Quo2 Wallet: Keypair component (#17019)
* Quo2 Wallet: Keypair component
2023-08-21 16:25:50 +04:00
Omar Basem 50f3bb005e
Quo2: Wallet Button and Wallet CTAs components (#17006)
* Quo2 Wallet: Button and CTAs
2023-08-21 16:01:34 +04:00
Parvesh Monu a45f353356
fix ios blur blue overlay (#17015) 2023-08-21 16:02:17 +05:30
Mohamed Javid e4a2ac9cce
Add gradient background support in bottom sheet (#16986)
This commit adds Gradient Background in the bottom sheet which will be used in Wallet Account Actions, and Switcher bottom sheet.

Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2023-08-21 15:43:50 +05:30
Ibrahem Khalil bdfdf687a4
[16827] Disable transparent video looping (#17000) 2023-08-21 11:49:41 +03:00
Alexander 95ec35343c
Background shown for [Continue] button on iOS when it shouldn't overlap the color picker (#17044)
* Background shown for [Continue] button on iOS when it shouldn't overlap the color picker

* kebab-case
2023-08-18 22:22:48 +02:00
John Ngei 66e3b60703
Add members to open community
* add members to open community

* fix: join open community notification
2023-08-18 15:38:35 +03:00
John Ngei 99294fa8ea
update empty state image illustrations to reflect the applied theme
* update empty state image illustrations to reflect the applied theme

* refactored the code to use theme provider
2023-08-17 23:46:01 +03:00
Mohamed Javid e11a761fcc
Revert "chore: update group-avatar component (#17014)" (#17039)
This reverts commit 673b1afc3a.
2023-08-17 18:49:38 +05:30
yqrashawn 999588e67d
fix: timbre log to react-native start console (#17032) 2023-08-17 20:51:20 +08:00
yqrashawn 9cae50dc88
fix: no ident ring in pinned msg (#17011) 2023-08-17 15:19:15 +08:00
codemaster 673b1afc3a
chore: update group-avatar component (#17014)
We merge it without QA because it only changes the API and doesn't need design review because nothing has been changed 👍
2023-08-17 06:44:30 +10:00
Icaro Motta b0f748cb73
Refactor Quo preview (#16996)
Improvements to quo previews:

- Change quo-preview.preview code to be more aligned with our guidelines.
- Remove duplication when setting up preview screens in quo-preview.main. Now we
  only need to specify the :name and :component keys and fallback to a good
  default for "{:options {:topBar {:visible true}}".
- Auto-generate descriptor labels based on the key.
- Fix form field colors for dark & light, especially for Android.
- Redesigned form fields to look nicer 💄
- Create component that abstracts away the code for rendering the form fields
  and the preview area. This will aid us in creating more consistent looking
  preview screens and keep things DRY.

How do we use the new code?

Just as before, define a state binding and use it to build up the arguments of
the component. Then, use the preview/preview-container to wrap the component.
You can use certain props to control how the preview is styled, etc, but that's
about it.

    (def descriptor
      [{:type :text :key :label}
       {:key     :chevron-position
        :type    :select
        :options [{:key :left}
                  {:key :right}]}])
    
    (defn view
      []
      (let [state (reagent/atom {:chevron-position :left
                                 :label            "Welcome"})]
        (fn []
          [preview/preview-container {:state state :descriptor descriptor}
           [quo/divider-label @state]])))
2023-08-16 11:30:21 +00:00
Andrea Maria Piana 0dea703ca0
3 lines community description 2023-08-16 12:15:12 +01:00
Ibrahem Khalil 50134ebeff
Fix jump to button showing inside composer (#16999) 2023-08-15 11:31:50 +03:00
yqrashawn a6710f902f
feat: render all avatars using media server (#16193) 2023-08-15 09:59:40 +08:00
codemaster115 87a150cec1
fix: lint 2023-08-14 12:30:14 -05:00
codemaster115 98e2d8c6f1
fix: group-avatar component usage 2023-08-14 12:14:17 -05:00
codemaster115 5bb309ca30
fix: group-avatar icon 2023-08-14 12:14:17 -05:00
codemaster115 eaa089b78c
chore: refactor using group-avatar component 2023-08-14 12:14:14 -05:00
codemaster115 9f12b4335c
chore: update group-avatar component 2023-08-14 12:13:03 -05:00
codemaster115 7bc98fcc44
chore: update group-avatar component 2023-08-14 12:13:03 -05:00
Alexander da22f4a809
Use `customization-color` to inherit custom colour for notification dots / counter (#16947)
* Inherit custom colour for unread notification dots

* Code style update; notification-dot as a separate component

* Code style update; notification-dot as a separate component

* Removed leftovers

* Updates

* Lint fix
2023-08-14 16:27:36 +02:00
Omar Basem 961150ac30
Quo2 Wallet: Account list card (#16893)
* Quo2: account-list-card
2023-08-14 17:00:42 +04:00
flexsurfer bf8b31d22d
Add preview and counters for CR system messages #16898 (#16969) 2023-08-12 06:39:26 +02:00
Omar Basem 79994e2dbf
Wallet Empty Home UI (#16965)
* feat: wallet empty home
2023-08-11 16:06:43 +04:00
Jamie Caprani 1cb16b4945
chore: add composer button to quo2 and use in app (#16902) 2023-08-10 04:27:25 -07:00
Jamie Caprani 302c54b6c4
Refactor some quo2 components to use best practices
* chore: update quo2 group avatar to best practices

* chore: update quo2 browser-input to best practices

* chore: update quo2 dynamic-button to best practices

* chore: update quo2 tabs to best practices

* chore: cleanup quo2 core file

* chore: use best practices in quo2 banner

* chore: use best practices in quo2 step
2023-08-10 03:59:13 -07:00
Andrea Maria Piana 87574ad78a
Align text left in lightbox 2023-08-10 10:27:49 +01:00
Ibrahem Khalil 30175f5d8b
feat: Account overview component (#16742) 2023-08-10 09:19:47 +03:00
Icaro Motta 6550bc058d
Document quo best practices and guidelines (#16901) 2023-08-09 11:32:36 -03:00
Alexander 528df179d9
"Your name" input field is dispositioned to the bottom on Create profile screen (Android) (#16923) 2023-08-09 16:06:28 +02:00
Jamie Caprani 6b4b9d99f4
chore: add basic flow for wallet development to begin 2023-08-09 05:45:48 -07:00
Andrea Maria Piana 016b38f15c
Various fixes on messaging view 2023-08-09 12:16:35 +01:00
John Ngei 11c798817e
show continue button background on scroll
This pr. add blur background on continue button on create profile screen should the button container cover the profile color picker when the keyboard is shown

* show button background on scroll

* fix show button on scroll different platforms

* fix: button container loading

* fix: button container background delay
2023-08-09 00:19:01 +03:00
Ulises Manuel Cárdenas 79bf4bb8d5
[#16437] Fix sync QR code not recognized after trying again (#16746)
* Add bind-component function to `react-native.navigation`

* Create helper function to use react-native-navigation lifecycle methods

* Fix sync QR code not recognized after trying again & refactor

* Add atom to manage callbacks when qr code scan fails
2023-08-08 11:53:05 -06:00
Parvesh Monu ff1ae2f4aa
Add fallback letter on channel on the community card (#16863) 2023-08-08 18:34:36 +05:30
Siddarth Kumar 2869edafdd
implement quo2 inputs - locked input component
Co-authored-by: tumanov-alex <uwontrememberthis@gmail.com>
Co-authored-by: Jamie Caprani <jamiecaprani@gmail.com>
2023-08-08 05:16:06 -07:00
Mohamed Javid d143b1d0e9
[Quo2] Implement "Progress bar" component (#16905)
This commit implements the "Progress bar" component which is needed for wallet screen development.

Additionally, this commit adds a new test helper method "render-with-theme-provider" to test components in different themes.

Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2023-08-08 17:15:55 +05:30
Omar Basem d8680ecf29
Quo2 Wallet: Summary Info (#16881)
* feat: quo2 wallet - summary info
2023-08-08 08:58:53 +04:00
mmilad75 24c4cd1509
Implement Quo2 Numbered-Keyboard / Numbered Keyboard component #16606 (#16851)
* Implement Quo2 Numbered-Keyboard / Numbered Keyboard component

* fix lint

* fix margin bottom

* fix android issue

* retructure a bit

* refactor code

* resolve comments

* fix styles

---------

Co-authored-by: Jamie Caprani <jamiecaprani@gmail.com>
2023-08-07 20:35:14 +03:30
Volodymyr Kozieiev 86e16564fa
Fetching featured communities (#16829)
Featured communities updated from status-go signal
Community card skeleton now is a part of a component
2023-08-07 16:43:58 +01:00
flexsurfer bc18e8aac5
[#16254] Add new system messages in chat history when accepting a con… (#16775)
* [#16254] Add new system messages in chat history when accepting a contact request
2023-08-07 10:56:54 +02:00
Omar Basem 5b495927ef
Quo2 Wallet: Token Value (#16880)
* feat: quo2 wallet - Token Value
2023-08-07 10:34:54 +04:00
erikseppanen 2819c20400
Quo2 wallet: add wallet overview (#16855) 2023-08-04 11:43:39 -04:00
Roman Volosovskyi 18347b44fe
Set initial block range for a newly created account (again) 2023-08-04 15:40:34 +02:00
Mohamed Javid bad9aa9e20
[Fix] Crash on onboarding due to nil value (#16884)
Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2023-08-04 17:22:43 +05:30
Ulises Manuel Cárdenas 7ad378e9c8
[#16709] chat home banner animation (#16823)
* Small typo fix
* Move header-spacing & empty-state to common.home namespace
* Create common animated banner component for chats and communities
* Add animated banner to chats tab
2023-08-03 13:29:44 -06:00
Mohamed Javid f6ce63734c
Update entry points for Quo2 Preview (#16843)
This commit adds two new entry points (button on the top right corner in the navigation bar) for the Quo2 preview screen without having to log in to the app:

- "New to Status"
- "login" 

Additionally, this commit updates the theme switcher to be sticky at the top of the Quo2 preview screen to quickly change the theme without having to scroll all the way top.

Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2023-08-03 23:49:01 +05:30
flexsurfer d9b54c47d3
simple quo groups (#16857) 2023-08-03 19:00:07 +02:00
Parvesh Monu 109061a112
Enable layout animations by default (#16832)
Co-authored-by: Jamie Caprani <jamiecaprani@gmail.com>
2023-08-03 18:53:15 +05:30
Jamie Caprani 98085cd9c9
chore: adjust quo2 counter component to use customization-color internally (#16799)
* chore: refactor use of customization-color in quo2 counter

* chore: fix uses of counter to use custom colors in app
2023-08-03 04:57:39 -07:00
Mohamed Javid cccf5ed015
Update on-press on collectible component (#16837)
This commit adds the "on-press" prop to the "collectible" component which is required for navigating to other screens, such as the details screen when we will start building the wallet.

Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2023-08-03 14:28:14 +05:30
Omar Basem b0e45207df
Quo2: Token Input (#16819)
* feat: quo2 token input (1/2)
2023-08-03 09:08:08 +04:00
frank 7b425c1a53
Add method for fast creation of communities (#16806)
* fast create community to test

* fix: in PR builds only token gated community is available

* update status-go-version.json
2023-08-03 08:59:28 +08:00
Yevheniia Berdnyk 3f433d6f19
e2e: group chat unread messages 2023-08-02 19:05:29 +03:00
Alexander da8ca36369
Top bar UI (design review) (#16820)
* Top bar UI (design review)

* Lint fix

* Show `Online`/`Offline` label only for non-group chats

* Fixed formatting
2023-08-02 17:26:06 +02:00
Jamie Caprani d26db932e8
Button Refactors Final Final (#16772)
* chore: remove use of override-background-color prop in button

* chore: update uses of quo2 button to align with figma

* chore: fix button preview screen

* fix: onboarding customization colors
2023-08-02 08:03:02 -07:00
Jamie Caprani ba859b163a
Revert "Set initial block range for a newly created account" (#16842)
This reverts commit ad17c37dc1.
2023-08-02 07:35:13 -07:00
Roman Volosovskyi ad17c37dc1
Set initial block range for a newly created account 2023-08-02 11:40:59 +02:00
mmilad75 07336edef6
Implement Quo2 Numbered-Keyboard / Keyboard Key component (#16723)
* Implement Quo2 Numbered-Keyboard / Keyboard Key component

* add tests

* fix lint issues

* add derivation-path icon

* add tests

* refactor preview
2023-08-02 11:38:38 +03:30
Flavio Fraschetti 7c73b7ea12
Implement account_card and variants (#16801)
* Implement account_card and variants with tests
2023-08-01 18:00:03 +01:00
Brian Sztamfater 21807cb761
feat: implement wallet graph component (#16789)
Signed-off-by: Brian Sztamfater <brian@status.im>
2023-08-01 11:10:16 -03:00
Omar Basem b8d01c8bb9
Quo2 Wallet: network bridge (#16793)
* feat: quo2 network bridge
2023-08-01 14:44:14 +04:00
Mohamed Javid 81b8c7ca65
Implement `Account Avatar` Component (#16795)
This commit implements the "Account Avatar" component which is needed for wallet screen development.

Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2023-07-31 21:54:04 +05:30
Omar Basem cf11743f87
Quo2: Network Amount (#16764)
* feat: network amount component
2023-07-31 14:53:27 +04:00
Mohamed Javid 162f02ea27
Implement `gradient cover` component (#16778)
This commit implements the "gradient cover" component which is needed for wallet screen development, and upgrades the "react-native-linear-gradient" library to "v2.8.0".

Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
2023-07-31 12:49:34 +05:30
Omar Basem 0ee0137c72
Camera extra features (#16781)
feat: camera extra features
2023-07-31 09:01:30 +04:00
Ulises Manuel Cárdenas 82645f5df4
[#16481] Fix unread badge in group chats (#16610)
* Small refactor & add customization color to `info-count` component
* Fix notification mark in group chats for no mentions, also notification alignment styles in the component
* Code style: `change > 0` for `pos?`
2023-07-28 13:33:07 -06:00
Ulises Manuel Cárdenas c4b142ea68
[#16446] Communities banner animation (#16567)
* Simplifies community banner and adds style property
* Add animation for communities banner card
* Moves value-in-range to `utils.number` and removes `bounded-val`
* Moves animated values to view namespace
* Make `community.banner` component themeable
2023-07-28 13:18:33 -06:00
Mohsen Ghafouri 3b8f66d2ec
[#16377] feat: add calendar component in quo2 preview (#16783) 2023-07-29 00:26:15 +05:30
Icaro Motta b9890a9d44
Upgrade shadow-cljs and ClojureScript (#15417)
This commit upgrades Shadow CLJS from 2.11.16 (released on Feb/21) to latest
2.25.0 (Jul/23), so ~1.5 years worth of upgrades. By upgrading shadow we
can finally use the latest major Clojure version 1.11.x.

Why upgrade shadow?

- Shadow CLJS controls the ClojureScript version we can use. In order to use the
  latest major Clojure version we must upgrade Shadow CLJS.

- Shadow CLJS releases new versions very frequently, and if you take a look at
  its changelog https://github.com/thheller/shadow-cljs/blob/master/CHANGELOG.md, you'll see
  it had tons and tons of bug fixes over the years. I hope some of them help
  improve the DX for certain contributors who recently reported issues with
  it.

- Clojure 1.11 brings new features, bug fixes and even performance improvements
  (although I think the performance mostly impacts Clojure on the JVM). See the
  changelog https://github.com/clojure/clojure/blob/master/changes.md#changes-to-clojure-in-version-1110

Things that can be beneficial to us, or are interesting nonetheless:

- New :as-alias to be used in require, which is like :as but does not require
  the namespace to load. This means namespaced keywords using :as-alias can't
  cause circular dependency errors. This feature would very useful if we used
  namespaced keywords, but we don't, so...
  https://github.com/clojure/clojure/blob/master/changes.md#22-as-alias-in-require
- New macros run-test and run-test-var to run single test with fixtures and
  report.
- New iteration function, useful for processing paginated data.
  https://www.abhinavomprakash.com/posts/clojure-iteration/
- New update-keys function: applies a function to every key in a map.
- New update-vals function: applies a function to every value in a map.

Examples for update-vals and update-keys. They should perform better than the
common reduce-kv approach since they use a transient data structure.

    (let [m {:a 1 :b 2}]
      (update-vals m inc)) ; => {:a 2, :b 3}
    
    (let [m {:a 1 :b 2}]
      (update-keys m name)) ; => {"a" 1, "b" 2}

Why change namespaces within __tests__ directories?

Any namespace with the word --tests-- throws an error, like the one below. I
didn't bother investigating why, so I changed the guidelines to reflect the new
convention. It's probably related to the double dashes in the name.

    Namespace quo2.components.dividers.--tests--.divider-label-component-spec has a
    segment starting with an invalid JavaScript identifier at line 1
2023-07-28 13:40:54 -03:00
Siddarth Kumar 1c405d3ed9
chore: wire up `startSearchForLocalPairingPeers` (#16803)
This commit initialises the status-go method `startSearchForLocalPairingPeers` which in turn will produce logs that are important for peer discovery while local pairing and will produce logs important to detect local pairing crashes.
2023-07-28 15:22:58 +05:30
Jamie Caprani a8303dbe50
chore: remove uses of override theme prop (#16570) 2023-07-28 02:36:54 -07:00
Ulises Manuel Cárdenas 4f044765e1
[#16278] fix tips in white camera border (#16716)
* Remove unnecessary wrapper
* Fix border tips and refactor
* Add comment about using 1.9 width
2023-07-26 14:08:57 -06:00
Parvesh Monu 7cd9f76043
Fix UI freezing when image is opened from activity center (#16707) 2023-07-26 18:19:10 +05:30