Status allows for importing communities via their private keys.
There's a requested feature that users should be able to import a community via
its public key as well.
This will behave differently as private keys won't give users ownership
of the communities. When importing via a (compressed) public key, Status
will try to fetch information about the community from the network. If it
finds such information, it'll load it into the app and create
a communitiy view from which users can then request access.
If it can't find a community or community information in the network,
the user will get a dedicated error message.
This commit also refactors the `ImportCommunityPopup` such that it uses
`StatusDialog` and updates the copy accordingly since importing via
public key is now possible as well.
Closes#8339
- rework the way social links are displayed/editted; we now only allow to
enter a so called "handle" and then substitute that in the final URL
template
- move the "icon" model role to NIM backend
This has several advantages:
- we display only the "handle" and don't have to elide some long URL
- we won't let users enter random URLs into their profile and spoof the
viewing part into clicking it
Additionally, make the social link "button" clickable -> navigate to the
target URL, and make the tooltip behave as "usual" (on mouse hover).
It may happen `asyncLoadMoreMessagesForChat` is called many times in a
row. Previously it did not check whether there is any pending fetch for
a given chat, which resulted in many same cursors fetches from status-go.
Furthermore, in this case, `lastUsedMsgCursor` ended up with the same
value as `msgCursor` resulting in wrong state where there are no more
messages to fetch.
- Simplified message loading code by introducing MessageCursor helper
type
- Ensured messages are not loaded twice for the same cursor
fixes: #8602
Fixes#8553
The torrent port was clashing with the release app since both of them have it on by default now. That was causing the messenger to fail on start.
This new PORT_SHIFT env var can be used to shift the port of the torrent service and wakuV2. No more need to use WAKUV2_PORT.
we can also add more ports that need shifting.
This enables opening multiple instances of the app very easily. Just increase PORT_SHIFT by one
Fixes#8401
Threads in Nim are very bad and when the app closes, the thread doesn't close until it is done. That means that the 20 minute timer needs to finish before it can be closed.
This adds support for receiving copied images from the clipboard
and pasting it into the chat input.
After pasting, chat input will recognize the image and render a preview
similar to how it would do it when selecting images via the file dialog.
**Also important to note**:
At the time of this PR, it seems that desktop only supports sending
jpegs to status-go. I'm not sure if this was deliberately done this way
because the protocol says it supports jpg, png, webp and gif.
Because of this, pasting for example pngs will work, however
transparency will be lost (which is also most likely the cause of #8820)
This PR operates on that assumption. So while it adds support for
copy/pasting images, it does not address the lack of file type support.
Closes#3395
We were ignoring the `removedChats` in the messenger response and
therefore never processed deleted community chats in the client.
This commit adds `removedChats` to `handleCommunityUpdates()` and
ensures that the community channel's ID is used when emitting a signal
to the app.
This needs: https://github.com/status-im/status-go/pull/2973Closes#8000
Enabling the community archive protocol could fail when another app is
using the same port that is specified as torrent client port.
This would cause the app to crash.
With these changes we:
1. No longer crash the app but output an error in the logs
2. We popup a dialog telling the user that the specified pord is in use
Closes#7328
Quick integration of fetching balance in the current chart view.
The proper implementation requires refactoring the QML views to separate
price chart, that depends only on the token and chain, from balance that
depends on token, chain and address.
Closes: #7662
Alright this was very painful to figure out.
Because desktop didn't know about the notification type for
`ContactVerification`, the signal processing for incoming contact
verifications would fail.
At the same time, the new message content type was missing a type
variant for content verification as well, which would cause the app to
crash at runtime for both, sender and receiver of verification requests.
Fixes#8205
Fixes#7791
Adds the retractContactRequest status-go api call. Calling it when removing a contact makes sure to send a signal to that other user so they can understand that we are no longer mutual contacts or don't have a request anymore
There's a bug in determining pending incoming contact requests where we
don't honor already rejected ones.
Simply checking if a contact in question `hasAddedUs` isn't enough
because that only tells us if the contact has sent us a request in the
past. It doesn't tell is whether the request was rejected already.
As a result, rejected contact requests keep popping up in the UI after
restarting the app. See #8156 for more information.
This commit introduces a `ContactRequestState` enum in Status Desktop,
similar to how it exists in status-go. Using this as `requestState`
on `ContactDto`, we can easily figure out what's the request state for
any given contact.
Notices that this only makes use of `ContactRequestState` to check for
whether a request was rejected.
We probably want to consider using this for all other states as well
(instead of relying on system tags).
Closes#8156