Commit Graph

88 Commits

Author SHA1 Message Date
Volodymyr Kozieiev a5c41612a0
Information about patching 3rd parties (#16249) 2023-06-12 13:17:48 +01:00
Icaro Motta a17efa7299
Make json-rpc/call effect more in line with re-frame standards (#15936)
Changes effect :json/rpc-call to accept on-success and on-error parameters
either as functions OR as re-frame event vectors. The changes are 100% backwards
compatible.

## Why?

Re-frame is very explicit in its documentation and its architecture, saying that
event handlers should be pure. Calling re-frame.core/dispatch in event handlers
makes them sort of stateful.

> So, you can "get away with it". But it ain't pure.
>
> -- https://day8.github.io/re-frame/EffectfulHandlers/#90-solution

In status-mobile, arguably one of our most important effects (not to be confused
with event handlers) is :json-rpc/call, but at the moment, the on-success and
on-error values are expected to be stateful functions (e.g. usually used for
logging and dispatching subsequent events).

This creates two important problems:

1. The value returned by event handlers is more opaque and cannot be easily
   inspected (for example using tap>, log/debug or just println). If we try to
   inspect or log them, on-success and on-error will be printed as
   #object[Function].
2. Testing event handlers using :json-rpc/call becomes an exercise of
   frustration, because we can't simply compare the results of the event handler
   with a good expected value, which is one of the big selling points of testing
   pure functions.

### The testability of event handlers

> For any re-frame app, there's three things to test:
>
> - Event Handlers - most of your testing focus will be here because this is
>   where most of the logic lives
> - Subscription Handlers - often not a lot to test here. Only Layer 3
>   subscriptions need testing.
> - View functions - I don't tend to write tests for views.
>
> -- https://day8.github.io/re-frame/Testing/#what-to-test

So re-frame is saying event handlers should be pure, and that event handlers
should be tested.

In order to achieve the divine simplicity of testing event handlers as pure
functions, we need to make :json-rpc/call also accept on-success and
on-error as event vectors.

Good news is that there is a known pattern to solve this problem, e.g. used by
the library https://github.com/Day8/re-frame-http-fx.

The pattern is simple once we see it: behind the scenes, :json-rpc/call conj'es
the results of the RPC call into the event vectors on-success and on-error, and
:json-rpc/call dispatches the events itself. This eliminates the need for the
stateful dispatch call in event handlers.
2023-05-18 15:56:10 -03:00
Volodymyr Kozieiev 5655efa448
Separate doc with debug tips (#15849)
Debugging basics
2023-05-10 10:38:59 +01:00
flexsurfer 4a42d20b0c
update guidlines (#15686) 2023-04-24 14:38:11 +02:00
yqrashawn 9b756544fd
feat: add in-app notification, refactor toast (#15642) 2023-04-17 14:01:25 +08:00
Brian Sztamfater 0f8aec00f2
Add guidelines for defining styles with apply-animations-to-style
Signed-off-by: Brian Sztamfater <brian@status.im>
2023-03-28 11:58:06 -03:00
Ulises Manuel Cárdenas 94ddbbcd2e
Add checked? property, dark blur variant & tests to disclaimer component
Co-authored-by: Jamie Caprani <jamiecaprani@gmail.com>
2023-03-27 14:06:09 -06:00
Jamie Caprani d8c110bf85
feat: add title input component to quo2 (#15133) 2023-03-11 08:29:11 -08:00
yqrashawn 46896ff7f4
ci: add component test (#15071) 2023-02-21 13:42:33 +08:00
Jamie Caprani cbad7f4c87
feat: add drawer buttons to quo2 (#15062)
feat: add drawer buttons to quo2
2023-02-16 06:29:44 -08:00
Siddarth Kumar bbb07ff595
we should explicitly mention testing status-go in our docs (#15091)
* we should explicitly mention testing status-go
2023-02-15 17:06:55 +05:30
Icaro Motta 0c59ed5ceb
Improve guidelines (#15008)
- New section: Use [] instead of () in Reagent components: New section after
  this comment https://github.com/status-im/status-mobile/pull/15005#discussion_r1098220176
- Updated section "Don't use percents to define width/height": reworded to
  follow the style of the rest of the document.
- Update section "Accessibility labels": added example about avoiding dynamic
  labels.
2023-02-07 10:05:38 -03:00
Icaro Motta 2dad2b67e8
Update style namespaces (#14941)
Update certain `style.cljs` files to more strictly follow our guidelines. Except for animations and theme colors, *style* functions should be pure.

It turns out `style` namespaces are well behaved and are almost perfectly following guidelines 🚀 

The motivation for the PR came from this thread https://github.com/status-im/status-mobile/pull/14925#discussion_r1090485454
2023-02-02 07:23:06 -03:00
Volodymyr Kozieiev bfb2863774
Documentation updated (#14933) 2023-01-31 12:06:29 +00:00
Icaro Motta 7cf17b5d34
Move unit test helper namespace to `src/test_helpers/` (#14716) 2023-01-05 11:58:37 -03:00
Icaro Motta 915b8ebd9a
New component Selector > Filter (#14650) 2022-12-28 12:21:15 -03:00
Siddarth Kumar b074e9c58e
moving security from status-im ns to root utils (#14567)
making a lint a fix

update old decision doc

fixing issues while poorly rebasing

fix incorrect ns imports
2022-12-20 17:56:21 +05:30
Icaro Motta 5693df5a74
Lint namespace aliases (#14526) 2022-12-13 17:04:26 -03:00
Jakub Sokołowski 2f1c236333
ci: update Apple dev team ID to update the org
We are trasnferring the Apple app to the new Switzerland based Apple
development organization/team from the old Singapore one, and to make
this work we also need to update the development team ID.

This should fix the following failure:
```
Could not find App ID with bundle identifier 'im.status.ethereum'
You can easily generate a new App ID on the Developer Portal using 'produce':
```
https://ci.infra.status.im/job/status-mobile/job/platforms/job/ios/854/console

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-12-07 10:45:14 +01:00
Icaro Motta 6e272a96c8
Introduce subscription tests (#14472) 2022-12-06 13:36:05 -03:00
Icaro Motta c198133769
Update guidelines (#14445) 2022-11-28 09:58:36 -03:00
Icaro Motta a77f662948
Document new guidelines (#14309) 2022-11-14 07:15:49 -03:00
yqrashawn 2bfc57281a
docs: run tests in repl (#14206) 2022-10-21 16:02:30 +08:00
frank 7ac2e1aa20
replace web3-utils methods usage by status-go (#13940)
Signed-off-by: frank <lovefree103@gmail.com>
2022-10-19 00:05:07 +08:00
Ibrahem Khalil 390ac858dc
Update starting guide doc (#14107)
* Update starting guide doc

* Fix bad placement of tut

* formatting and style fixes

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

* add adb link

Signed-off-by: Jakub Sokołowski <jakub@status.im>
Co-authored-by: Jakub Sokołowski <jakub@status.im>
2022-10-05 15:39:28 +02:00
Jakub Sokołowski fac5301ace
docs/FDROID: not to create the PR as draft first
Otherwise F-Droid reviewers can merge the PR before we have a final
release version ready with all the fixes included.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-09-23 11:13:39 +02:00
Parvesh Monu 147958dd13
Allow disabling Hermes engine by passing flag while building app (#14041) 2022-09-21 14:56:26 +05:30
omahs 0495a9a0ba
Fix: typos (#13937)
Fix: typos
2022-09-06 08:46:49 +02:00
yqrashawn 98ca311a97
feat: lottie splash screen (#13714)
[#13714] feat: lottie splash screen
2022-08-02 12:48:12 +02:00
yqrashawn d3235e4174
fix: typo (#13739) 2022-07-29 13:46:57 +02:00
erikseppanen 1377ba3c1a
Update IDE_SETUP.md (#13734)
Add IDE section for emacs
2022-07-28 15:29:52 +02:00
Jakub Sokołowski 1f7fd17ff1
rename status-react to status-mobile
This way the name of the repo makes at least some sense and
matches the `status-desktop` repo naming.

Also updated `status-jenkins-lib` since it also contained
references to `status-react` repo and job names.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-07-17 14:46:16 +02:00
Peter Strömberg 81f37e0a63
Update IDE setup docs, adding Calva
Signed-off-by: Audrius Molis <masta@dr.com>
2022-06-16 16:29:56 +03:00
Andrea Maria Piana 9bcbb580e1
Add login integration test
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2022-06-08 13:43:32 +01:00
Andrea Maria Piana 60cfca1107
Move mailserver logic to status-go
598b83757c...d60a6713fe
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2022-03-19 09:01:21 +00:00
Jakub Sokołowski b1780a7128
docs: add list of nix deps update make targets
Important now that we're onboarding more new devs.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2022-01-27 21:42:05 +01:00
Parvesh Monu 94fde74b88
Reorder community chats and categories using drag and drop (#12854) 2021-12-24 21:04:44 +05:30
Andrea Maria Piana 5c52854d11
fdroid: add script that automates submissions
This script fetches a specified APK and analyzes it for values like
version code or commit and then based on that creates a branchy and a
commit in `fdroiddata` repository that can be used to create a release PR.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-10-13 12:13:38 +02:00
Parvesh Monu eb5711e9bc
Custom Emoji Thumbnails for Community Channels (#12594) 2021-10-04 19:08:39 +05:30
Jakub Sokołowski d4da8209cd
Revert "Remove fastlane metadata because no one use it"
Because as pointed out in this comment:
https://github.com/status-im/status-react/issues/12289#issuecomment-894008069
the lack of fastlane metadata makes F-Droid unable to find out things
like app description.

For more details see:
https://f-droid.org/en/docs/All_About_Descriptions_Graphics_and_Screenshots/#fastlane-structure

This reverts commit 3469aca1d8.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-08-12 19:28:20 +02:00
Serhy a1d091ac19
Update release process guide
Signed-off-by: Serhy <sergii@status.im>
2021-06-22 14:15:28 +03:00
Volodymyr Kozieiev 3469aca1d8
Remove fastlane metadata because no one use it
Signed-off-by: Volodymyr Kozieiev <vkjr.sp@gmail.com>
2021-05-11 12:09:42 +03:00
Volodymyr Kozieiev 8628cbbf76
Update release guide
Signed-off-by: Volodymyr Kozieiev <vkjr.sp@gmail.com>
2021-05-06 15:58:58 +03:00
Andrea Maria Piana a90d8a1439
Add release guide & script to cut release
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-04-16 16:12:37 +02:00
Jakub Sokołowski 711389365c
doc: update update-playstore-metadata job link
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-04-14 16:14:16 +02:00
Samuel Hawksby-Robinson f970834536
Added ToC, Tidied Troubleshooting, Added images to avoid future 404s
Removed superfluous check

Adjusted images to be 50% the page width

Image width 75%

Finished off REPL section

Signed-off-by: Samuel Hawksby-Robinson <samuel@samyoul.com>
2021-03-30 23:18:37 +01:00
Samuel Hawksby-Robinson a4836120e6
Added a doc for IDE setup
Based on https://notes.status.im/9Gr7kqF8SzC_SmYK0eB7uQ?view, hopefully this document can help some poor soul in the future. I have a little more work to do but I'm interested in whether this kind of document would be welcome in the repo
2021-03-30 22:57:46 +01:00
Jakub Sokołowski 8268346dfa
fdroid: small fixes for docs
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-03-23 13:33:30 +01:00
Jakub Sokołowski 46f8d9fdbf
docs: update format of F-Droid metadata
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-03-17 11:18:39 +01:00
Jakub Sokołowski 6a764869a0
doc/FDROID.md: add explanation of Android build
Signed-off-by: Jakub Sokołowski <jakub@status.im>
Signed-off-by: andrey <motor4ik@gmail.com>
2021-03-02 16:58:02 +01:00