This commit should help with potential freezes right after login, especially in
low-end devices and for users with more data.
The default behavior for the effect :json-rpc/call is to transform the
response to CLJS data using (js->clj data :keywordize-keys true), even if the
result is never used. The problem is that the response from
wakuext_startMessenger can be a very large struct! This PR simply adds the
missing line :js-response true.
ca22b67d0e/src/status_im/common/json_rpc/events.cljs (L85-L87)
type MessengerResponse struct {
Contacts []*Contact
Invitations []*GroupChatInvitation
CommunityChanges []*communities.CommunityChanges
AnonymousMetrics []*appmetrics.AppMetric
Mailservers []mailservers.Mailserver
CommunityStorenodes []storenodes.Storenode
Bookmarks []*browsers.Bookmark
Settings []*settings.SyncSettingField
IdentityImages []images.IdentityImage
CustomizationColor string
WatchOnlyAccounts []*accounts.Account
Keypairs []*accounts.Keypair
AccountsPositions []*accounts.Account
TokenPreferences []walletsettings.TokenPreferences
CollectiblePreferences []walletsettings.CollectiblePreferences
DiscordCategories []*discord.Category
DiscordChannels []*discord.Channel
DiscordOldestMessageTimestamp int
BackupHandled bool
// notifications a list of notifications derived from messenger events
// that are useful to notify the user about
installations map[string]*multidevice.Installation
notifications map[string]*localnotifications.Notification
requestsToJoinCommunity map[string]*communities.RequestToJoin
chats map[string]*Chat
removedChats map[string]bool
removedMessages map[string]*RemovedMessage
deletedMessages map[string]string
communities map[string]*communities.Community
communitiesSettings map[string]*communities.CommunitySettings
activityCenterNotifications map[string]*ActivityCenterNotification
activityCenterState *ActivityCenterState
messages map[string]*common.Message
pinMessages map[string]*common.PinMessage
discordMessages map[string]*protobuf.DiscordMessage
discordMessageAttachments map[string]*protobuf.DiscordMessageAttachment
discordMessageAuthors map[string]*protobuf.DiscordMessageAuthor
currentStatus *UserStatus
statusUpdates map[string]UserStatus
clearedHistories map[string]*ClearedHistory
verificationRequests map[string]*verification.Request
trustStatus map[string]verification.TrustStatus
emojiReactions map[string]*EmojiReaction
savedAddresses map[string]*wallet.SavedAddress
ensUsernameDetails []*ensservice.UsernameDetail
updatedProfileShowcaseContactIDs map[string]bool
seenAndUnseenMessages map[string]*SeenUnseenMessages
}
This change resolves an issue with un-opened, joined, and pending communities being visible inside the "opened" communities tab. With this change, the "opened" community tab will only display spectated (opened) communities that have not been joined or pending to be joined.
This change fixes the appearance of the disclaimer checkbox inside the create/change password forms to use the user's customization color. Additionally, this change also changes the password-hint success icons to use the check-circle because of its solid opacity.
This commit removes chain prefixes being added to ENS resolved address in send flow
Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
This commit
- fixes the networks/chains supported by the token based on the token list fetched from status-go instead of relying on the balance-per-chain map as status-go returns balance for chains only if there is a positive balance
- adds supported-networks key to token data map for network details
Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
This change refactors the navigation-screens namespace to organise each screen definition into a group based on the app features. It also adds some metrics tracking to all the of the screens defined in the navigation-screens namespace.
Additionally, in this change we've introduced a new build configuration for shadow-cljs which allows us to conditionally include code for certain shadow-cljs builds. In this case, we've decided to only exclude the metrics re-frame interceptor from being required when running the component-tests build. This is due to a complication with the metrics interceptor depending on the navigation-screens namespace, which would eventually require many other third-party dependencies that do not have mocks defined for the component tests. To avoid defining more mocks, we've avoided requiring the metrics interceptor for now.
This commit fixes activity tab is selected when navigating back from the swap flow
Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
* fix: filter tokens by balance on select asset
* feat: added network-list-with-positive-balance
* fix: swaps error when using networks with balance
* fix: hide send/bridge/swap when no token balance
This commit:
- Adds a PDF viewer screen to view PDFs within the app instead of opening them on the system browser
- Updates the swap provider (ParaSwap) terms and conditions to be displayed within the app
- Increases APK size limit to 80 MB
Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
Co-authored-by: Siddarth Kumar <siddarthkay@gmail.com>
* Make `->bignumbers` more general
* Fix case when there are not enough assets to pay gas fees:
- Fix the UI to match Figma
- Fix logic to handle the case
- Perform refactoring to surrounding code
* Change `defonce ^:const` -> `def ^:const` in `status-im.contexts.chat.messenger.messages.list.view` to be more REPL friendly
* Remove animations from `status-im.contexts.chat.messenger.messages.pin.banner.style`
* Simplify placeholder for messages
* Replace shared-value with a ratom usage since no animations were performed.
* Fix the style for the new designs and remove now unnecessary animations
* Improve chat component implementation
The previous implementation has two main problems:
1. It is creating atoms and ratoms in non-form-2-components.
2. Conditionally uses a hook: `rn/use-mount` in `lazy-chat-screen`.
The new implementation fixes the previous problems, improves the readability and passes only the props needed to its children.
* Remove action buttons from the chat screen
* Remove now unused code
* Replace reanimated/view -> rn/view where no animations are made
* feat: moved disconnect logic to function
* ref: moved rpc calls to rpc ns
* ref: moved session approval logic to function
* fix: small fixes for sessions
* test: wallet-connect/on-session-delete event test
* test: added event tests for wc sessions
* fix: require sessions events ns
* fix: the wallet was loaded after wc sometimes
* feat: added type data flattening + tests
* feat: added typed data flattened ui
* ref: moved typed data utils into their own ns
* ref: small changes & formatting
* feat: show typed data view only for typed data requests
* ref: moved typed-data? into sub
* fix: tests and styling
This commit
- Stops route calculation when the user
- changes FROM account
- changes the send (input) amount
- goes back from the routes calculation page
- after the transaction is successfully submitted
- goes back from tx confirmation page for collectibles
- Prevents the keyboard being dismissed while entering the password on the transaction confirmation page
- Fixes multiple edit tiles/boxes added to receiver routes
Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
This change adapts the code to avoid persisting the string `"<0.01"` in the wallet-send UI state. This change also modifies some of the BigNumber utility functions to validate that only BigNumbers are used with the utility functions. And the this change also tries to stop requesting route suggestions after exiting the wallet-send flow.
This change adds a re-frame event for `:open-url` which will allow UI components to open a url using the re-frame effect `:effects/open-url`. Additionally, some code was refactored to use the `:open-url` event instead of directly opening the urls with the `open-url` function.
This commit fixes the max value that is not updated when the user switches the token/network in the input amount screen
Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
This commit removes the support for GIF file types for the collectibles.
Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
* Fix not joined drawer options for token gated communities
* Remove `show-not-implemented-features?` flag for token gated options
* Fix component tests
As recommended in
https://github.com/status-im/status-go/pull/5570#discussion_r1692345230 [1] and
https://github.com/status-im/status-go/pull/5570#discussion_r1690794119 [2], we set
the Waku config flag WakuV2EnableMissingMessageVerification to true. The flag
can't be toggled in the UI because there's no supporting endpoint for that in
status-go at the moment.
[1] I doubt the hash based store-query going to be as expensive as legacy-store.
Because we only query hashes and if we miss any messages we fetch them which
would improve message reliability.
https://github.com/status-im/status-go/pull/5511 is expensive as it doesn't
query hashes rather full messages. I think we can keep this new flag enabled by
default and provide a switch in the app in case it becomes expensive to disable
it.
[2] we can keep this enabled for mobile by default. The reason
WakuV2EnableStoreConfirmationForMessagesSent was disabled is as it was giving
bad UX to users where messages were sent but still showing as not sent due to
storeNode performance issues. But this flag doesn't give any bad UX, so we can
keep it enabled by default.
Fixes https://github.com/status-im/status-mobile/issues/20879
* WC: Last account that established connection is not selected when connecting through global scanner
* WC: Last account that established connection is not selected when connecting through global scanner
* Fixes
this commit implemented logging request/response between status-mobile and status-go.
to access `requests.log`, shake your phone and share the logs.
TBD:
- adding `device id` into request to proxy server, we can implement it in a separate PR if needed.
- not sure if we need logging the request made in the backend that not asked by frontend directly
This commit:
- fixes crash while sending an ERC115 collectible
- fixes routes are fetched if we enter 0 in the input
Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
This commit fixes the delay in showing the currency symbol in the wallet by moving the RPC call to login phase 1 along with wallet initialisation. This helps us to improve the wallet UX by skipping the waiting to start the messenger.
Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
* fixed overlapping last message by the composer when there is a pinned message
* prevent a user who is not a member of a community from pinning or unpinning channel messages
---------
Co-authored-by: Ulises M <ulises.ssb@hotmail.com>
* Fix input amount step skipped while sending a token
* Rename events to remove the `wallet` unnecessary suffix
* Code style fixes
* Fix React warnings:
1. About unique key in `select-address.tabs.view` along with a refactor
2. The deprecated `:keyboard-should-persist-taps` as `true` in `send.select-address.view`
* Hide account switcher while sending a collectible
* Fix tests