Commit Graph

137 Commits

Author SHA1 Message Date
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
Jakub Sokołowski c703e45105
docs: update instructions in doc/FDROID.md
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-03-02 12:38:41 +01:00
Jakub Sokołowski d0d8815d4a
readme: add "Get it on ..." badges
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-03-02 12:38:34 +01:00
guylouis 9f9370f72d
Update RELEASE_CHECKLIST.md
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2021-02-24 11:22:31 +01:00
andrey 9648f741b4
cleaning 3
Signed-off-by: andrey <motor4ik@gmail.com>
2021-02-17 16:16:54 +01:00
hesterbruikman abc63af4a8
Create RELEASE_CHECKLIST.md
Moving file to repo to replace hackmd notes doc

Signed-off-by: andrey <motor4ik@gmail.com>
2021-01-04 09:29:00 +01:00
shivekkhurana 4cb058f1ca
Add notes on testing, translations, merging and starting Refrisk
Signed-off-by: shivekkhurana <shivek@status.im>
2020-11-23 11:23:31 +05:30
Jakub Sokołowski bdbc48764e
add F-Droid update README file
Signed-off-by: Jakub Sokołowski <jakub@status.im>
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2020-10-06 11:23:17 +02:00
Gheorghe Pinzaru c34df26e19
Move icons assets into resources
Fix logout icon usage

Update icons docs

Remove scripting

change jenkins

Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
2020-05-08 14:12:52 +03:00
yenda c3dd950286
remove realm
Signed-off-by: yenda <eric@status.im>
2019-09-09 18:40:15 +02:00
Vitaliy Vlasov 04ccd0e7d8
Add TtT chat flow
Signed-off-by: yenda <eric@status.im>
2019-06-03 15:31:30 +02:00
yenda 55fd6cefa7
Tribute to Talk adr
Signed-off-by: Pedro Pombeiro <pombeirp@users.noreply.github.com>
2019-05-08 16:41:28 +02:00
Andrey Shovkoplyas b44c86511e
Update subscriptions codebase structure doc
Signed-off-by: Andrey Shovkoplyas <motor4ik@gmail.com>
2019-05-01 15:02:23 +02:00
Pedro Pombeiro b28e27947a
Add Using Pivotal Tracker document
Signed-off-by: Pedro Pombeiro <pombeirp@users.noreply.github.com>
2019-04-08 19:25:44 +02:00
Oskar Thorén e02b89660f
ARD: 0011. Tweak PR process [no code] (#7584)
Signed-off-by: Oskar Thoren <ot@oskarthoren.com>
2019-02-28 23:38:53 +08:00
Pedro Pombeiro 5a69b4198e
Update PNs to use data-only messaging, and only encode/decode data values. Fixes #6772
Fix navigation to chat when PN is tapped while signed off. Fixes #3488

Anonymize PN pubkeys. Part of #6772
2019-01-17 19:23:55 +02:00
Roman Volosovskyi 664cbf6bbe
Sign-in flow docs and tests 2019-01-15 17:00:58 +02:00
Pedro Pombeiro 17a8d3a9c9
Unify desktop builds. Closes #5406
- Replace Linux and MacOS scripts in `ci/desktop.groovy` with calls to `scripts/create-desktop-package.sh`
- Replace use of `deployment/env` with `.env` to avoid confusion and be coherent with mobile platforms

Signed-off-by: Pedro Pombeiro <pombeirp@users.noreply.github.com>
2018-09-26 16:45:48 +02:00
yenda b71005d2fa
replace all register-event-db by fx and remove trim-v interceptor
Signed-off-by: yenda <eric@status.im>
2018-09-20 13:37:31 +02:00
Eric Dvorsak 153d0b2ee1
add first version of codebase-structure-and-guidelines.md 2018-09-11 15:08:25 +02:00
Vitaliy Vlasov a5f2e7722a
Add warning about npm versions higher than 5.6.0 2018-09-04 18:49:09 +03:00
Vitaliy Vlasov eebdc1d02d
Update desktop dev env setup doc 2018-09-04 18:01:35 +03:00
jhe 854acebb70
Remove jail + Status.js API
Signed-off-by: jhe <jan.herich@gmail.com>
2018-08-16 12:59:35 +02:00
Igor Mandrigin 10a0ab1df2
Document the mobile release process in the repo.
Signed-off-by: Igor Mandrigin <i@mandrigin.ru>
2018-07-25 09:52:55 +03:00
Volodymyr Kozieiev 457f2a157a
Desktop branch merged into develop (#5266)
* Desktop branch merged into develop
* Fixed review notes by yenda
2018-07-23 18:21:31 +03:00
Andrea Maria Piana 5b5a5f72ec
Add ADR on development workflow
Signed-off-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2018-05-28 17:16:20 +02:00
Igor Mandrigin 789ee61212
Use a custom type to avoid accidentially logging passwords.
Signed-off-by: Igor Mandrigin <i@mandrigin.ru>
2018-05-28 11:56:16 +02:00
Oskar Thorén aa108cda12
ADR: Geth node (upstream/LES/ULC) (#4243) 2018-05-16 10:57:20 +08:00
Andrea Franz f49de27e04
add decision 0006-wallet-compatibility
Signed-off-by: Andrey Shovkoplyas <motor4ik@gmail.com>
2018-05-15 18:57:09 +03:00
Oskar Thoren df794c724d
ARD: Disable group chats for beta
Signed-off-by: Julien Eluard <julien.eluard@gmail.com>
2018-05-14 14:54:25 +02:00
Oskar Thoren 750b32d10b
ARD: Discovery protocol
Signed-off-by: Julien Eluard <julien.eluard@gmail.com>
2018-05-14 14:53:42 +02:00
Julien Eluard e1f6292833
Added OKR for status extension URI schema
Signed-off-by: Julien Eluard <julien.eluard@gmail.com>
2018-04-27 09:29:00 +02:00
Audrius Molis 2292d2e500
Got rid of old files.
Signed-off-by: Eric Dvorsak <eric@dvorsak.fr>
2018-01-17 17:04:29 +01:00
ankit raj 00ee672c33 typo fix
typo fix
2017-08-25 09:27:15 +03:00
Oskar Thorén 6dafd137dc docs: FAQ document
Question on nature of async/sync calls in different environments
2017-08-15 14:14:50 +03:00
Eric Dvorsak d999927352 Refactoring guidelines draft 2017-08-09 14:23:41 +03:00
Jarrad b5763bb8ad syng to status
Former-commit-id: 6a5250247c
2016-05-19 18:31:56 +02:00
michaelr d54d6555a4 moved re-frame app to root folder
Former-commit-id: 5a3b923b0c
2016-04-04 19:21:10 +03:00
virvar 7c6e7c644a Initial 2016-02-23 01:04:42 +03:00