32 Commits

Author SHA1 Message Date
Omar Basem
f19ec2a93f
Wallet: Buy Tokens drawer (#17654)
* Wallet: buy tokens drawer
2023-10-18 15:24:25 +04:00
Icaro Motta
7ae96e86f1
Enable ns sorting linter and clean+sort all namespaces (#17618) 2023-10-16 22:03:18 +00:00
flexsurfer
27cd7d4edd
remove quo lib (#17626) 2023-10-16 18:34:00 +02: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 255a3b917265d381fed57e26422277b4cc8772e4

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
Icaro Motta
6170686e34
Rewrite Community List component (#16527)
Re-implements the component Community List according to guidelines
and, most importantly, fixes a bunch of issues and tries to achieve 100%
compatibility with Figma.

The new implementation is trying to mirror Figma properties as much as possible.

Fixes https://github.com/status-im/status-mobile/issues/16447

Changelog:

- Refactor to guidelines.
- Fix: original implementation in money/format-amounts had a bug caught by new
  unit tests ("1000000" was formatted incorrectly).
- Fix: Community permission tag correct background when theme is overridden and
  when blur is enabled.
- Fix: Notification dot uses correct colors for dark mode and blur variants.
- Fix: Community stats background when blur is enabled.
- Fix: Community stats icon color when blur is enabled.
- Add: The component's Quo preview screen is smarter and will only show form
  fields (aka descriptors) that are relevant for each component type (engage,
  discover or share).
- Add: replace hardcoded community statistics with an implementation that
  actually accepts real numbers and which are correctly formatted.
- Add: New Quo descriptor type number.
- Add: Component uses correct shadows according to foundations/shadows.
2023-07-12 11:14:24 +00:00
Jamie Caprani
fa698dbc30
feat: add parallax to biometrics page for whitelisted devices (#16296) 2023-06-27 02:50:27 -07:00
Jamie Caprani
e5778ee300
feat: add new theming mechanism (#16191)
* chore: set react-dom to same version as react
2023-06-23 05:11:50 -07:00
flexsurfer
a4bc18ee3f
improve photo-selector and adjust according to the latest designs (#16053) 2023-06-01 10:35:57 +02:00
Omar Basem
341497e98d
feat: new composer complete 🎉 (#15818)
* feat: new composer
2023-05-09 21:03:19 +04:00
flexsurfer
efbf93f6e2
move status native module (#15749) 2023-04-26 18:14:14 +02:00
flexsurfer
cd69d0423a
fix (fn[]) usage in hiccup (#15713) 2023-04-25 15:13:14 +02:00
flexsurfer
0fe6fea7e4
Improve home animations (#15247) 2023-03-13 19:47:04 +01:00
Icaro Motta
1806cb792a
Allow users to swipe to delete or swipe to toggle unread notification status (#15106)
Adds support for swiping left/right on some types of notifications. Swiping left
(from left to right) shows a blue button allowing the user to mark the
notification as read/unread. Swiping right (from right to left) shows a red
button, allowing the user to delete the notification for good.

Related PR in status-go https://github.com/status-im/status-go/pull/3201.

Fixes https://github.com/status-im/status-mobile/issues/14901
Fixes https://github.com/status-im/status-mobile/issues/14900

Technical notes
===============

How's the performance? It feels near native performance in a production release
in a mid-range smartphone. So I'd say it's pretty good, but let me know if you
find any issue.

- I refrained from trying to eliminate all code duplication in this PR. Some
  notifications will behave differently, especially the ones with call to
  action, so I ask you to please take that in consideration when reviewing. See
  https://github.com/status-im/status-mobile/issues/15118
- React Native Gesture Handler has a component named
  [Swipeable](https://docs.swmansion.com/react-native-gesture-handler/docs/api/components/swipeable/).
  I used it instead of writing a monstrosity 👹 of code in
  Reanimated to achieve the same results.
- RN Gesture Handler touchables are the only ones that work with the Swipeable
  component, so I used them and added vars to `react-native.gesture`.
- I had to manually interpolate the translation X of the buttons behind
  notifications because notifications are transparent. To make interpolation
  work with `Swipeable` it's mandatory to use RN `Animated.View` and not
  `Reanimated.View` (see next point).
- `Swipeable` expects us to pass functions that will receive RN
  `AnimatedInterpolation` instances and the rendering lifecycle does not work as
  usual. Hooks didn't trigger as expected, functional Reagent components didn't
  behave as expected, etc. This means `Reanimated.View` and its interpolation
  function is out of question. I did try for almost two days, nothing works.

Testing notes
=============

These are some of the manual tests I ran. There are more scenarios to cover
obviously. Assuming no unread notifications before each flow:

Contact request notification
============================

From the perspective of an user A:

1. Receive a contact request from a non-mutual contact B.
2. Verify the unread count is displayed over the bell icon.
3. Verify the unread count is displayed on the `Messages > Contacts` tab, as
   well as on the AC `Contact requests` tab.
4. Open the AC and before accepting/declining the contact request, check that
   you CAN'T swipe left or right.
5. Accept or decline the contact request.
6. Check the unread indicator disappears in all necessary places.
7. Press on the notification and see if you're redirected to the chat.
8. Go back to the AC and swipe left to mark as `Unread`. Notice that opening the
   chat marks the notification as `Read`. Also very important, notice that the
   `Messages > Contacts` tab will NOT show the *pending contact requests*
   section at the top. This is on purpose, given the notification is unread, but
   the user has already accepted/declined the contact request, hence it's not
   pending.
9. Swipe left againg to mark as `Read`. Check all unread indicators are updated.
10. Swipe right to delete the notification (it won't be displayed ever again).

Admin notification
==================

1. Generate an admin notification, e.g. a community owner receiving a request
   notification to join.
2. Verify the unread count is displayed over the bell icon, as well as the AC
   Admin tab.
3. Verify the community unread indicator is correctly displayed.
4. As an admin, open the AC and before accepting/declining the request, check
   that you CAN'T swipe left or right.
5. Accept or decline the membership request.
6. Check the unread indicator disappears accordingly.
7. Swipe left to mark as `Read`.
8. Swipe left to mark as `Unread`.
9. Swipe right to delete the notification (it won't be displayed ever again).

Mentions & replies
==================

Similar steps outlined for `Admin` notifications, but there's one important
difference. Mention and reply notifications don't require a call to action from
the user, so the user can swipe left/right **without** first having to do
anything on the notification (such as pressing on it). See issue
https://github.com/status-im/status-mobile/issues/15118

What about other types of notifications?
========================================

Swipe gestures for other notification types will be implemented in a separate
PR.
2023-02-24 21:22:31 -03:00
0f8ad69319
Nix/upgrade zprint 1.2.5 (#15113)
* nix: upgrade zprint from 1.2.4 to 1.2.5

To address issue described in:
https://github.com/kkinnear/zprint/issues/273

Signed-off-by: Jakub Sokołowski <jakub@status.im>

* chore: use zprint :multi-lhs-hang

* refactor: re-format clojure using zprint 1.2.5

---------

Signed-off-by: Jakub Sokołowski <jakub@status.im>
Co-authored-by: yqrashawn <namy.19@gmail.com>
2023-02-17 20:10:00 +08:00
Omar Basem
eed38fe082
Lightbox screen animations (#14954)
* lightbox screen animations
2023-02-02 15:03:59 +04:00
flexsurfer
6002672e7c
[#14877] No ability to type the text into textbox if image is added [#14881] Input field is hidden in composer (#14911) 2023-01-27 16:40:04 +01:00
Brian Sztamfater
bd3c724c66
feat: record audio complete flow
Signed-off-by: Brian Sztamfater <brian@status.im>
2023-01-23 14:04:06 -03:00
flexsurfer
d79d2e9d36
sanitize quo2 (#14859) 2023-01-23 14:41:55 +01:00
flexsurfer
ed348e0871
cleaning (#14808)
cleaning, introduce react-native.red-black-tree and move messages list events
2023-01-18 12:16:33 +01:00
flexsurfer
685c95591c
refactor and move composer to status-im2 (#14758)
refactor and move composer to status-im2
2023-01-16 17:20:10 +01:00
yqrashawn
02a1c3597f
feat: undo delete with toast (#14618) 2023-01-10 10:02:23 +08:00
Christoph Pader
6280a6c4d5
feat: implement quo2 bottom sheet component (#14209) 2022-12-28 15:23:58 +01:00
yqrashawn
0a8993bbf1
refactor: reformat all clojure code with zprint (#14589)
Co-authored-by: refactor-only <auto@status.im>
2022-12-20 22:45:37 +08:00
yqrashawn
37909c2d81
feat: toast component (#14376) 2022-12-20 21:52:28 +08:00
Parvesh Monu
dbd61a34a0
Update shell placeholder screen with new designs (#14572) 2022-12-19 14:51:53 +05:30
flexsurfer
da0f0d3a81
move messages main screen to status-im2 (#14491)
* move messages main screen to status-im2
2022-12-05 14:22:06 +01:00
Jamie Caprani
0e614d51ef
feat: add scrolling in community (#14281) 2022-11-28 02:24:31 -08:00
Omar Basem
5492fb472f
Group Details Screen (#14377)
* feat: group details screen
2022-11-21 16:03:49 +04:00
flexsurfer
803328dc4c
move switcher (#14378)
* move switcher
2022-11-16 12:00:16 +01:00
flexsurfer
c7d5e90882
introduce new project structure (first step) (#14356)
* introduce new project structure
2022-11-14 19:16:55 +01:00
flexsurfer
3c1c8a120d
cleanup quo2 2, remove status-im usage (#14308) 2022-11-10 09:10:43 +01:00
flexsurfer
5907edccc8
cleanup quo2 (#14301)
* cleanup quo2
2022-11-08 18:30:17 +01:00